- 1
- 2
- 3
- 4
- 5
- 6
// заполнение массива случайными числами
template <typename T> void fill_array_with_random( T array[], size_t length ) {
for ( size_t i = 0; i < length; i++ ) {
array[i] = rand();
}
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+20
// заполнение массива случайными числами
template <typename T> void fill_array_with_random( T array[], size_t length ) {
for ( size_t i = 0; i < length; i++ ) {
array[i] = rand();
}
}
Главный недостаток - K&R indent style.
Начинаем индентосрач?
А еще там лишние пробелы после ( и перед ).
Разве что-то обязывает использовать в плюсах IS K&R?
Особенно при работе с шаблонами.
Как на меня, удобней всего IS Алмена либо IS Linux Kernel.
K&R
if () {
/* one statement*/
} else {
/* one statement*/
}
LK:
if ()
/* one statement*/
else
/* one statement*/
Не соответствие установленным правилам влечёт за собой отклонение кода — там никто не будет разбираться, желающих пропатчить ядро туева хуча.
Чем отличается стиль K&R от стиля LR?
LR->LK, надо полагать.
В незначительных деталях не соблюдение которых многое значит.
Особенность в том, что для LKIS K&R and 1TBS not the same.
т. е. LKIS не использует single statement opening and closing braces, for all if, else, while, and for. Это первое, и как уже заметили для LKIS tab=8*space - necessary, а для K&R не догма,
обычно 4-ку спейсами ставят.
И да, по причине не соблюдение этих 'незначительных деталей', патч могут не принять.
И в LK таб равен 8 пробелам а отступ делается одним табом, а в KR пох какой таб, отступы делаются пробелами?
http://www.kernel.org/doc/Documentation/CodingStyle
Только, в добавок, у функций скобки ставятся по allman'овски.
Отступ, набранный пробелми это пиздец.
Скобки по аллмановски - это
int main(){
return 0;
};
?
В kernel пишут, что отступ в 1 таб, который настроен на 8 пробелов, при этом отмечено что это не 8 пробелов, а именно таб. Причина - чтобы не писали больше 2-3 вложенных конструкций.
> Скобки по аллмановски
int main()
{
}
2-3 вложенные конструкции это пиздец. Даже кусорт не написать.
Не знаю, привык к отступу в 4 пробела. Пиздец это когда табы смешаны с пробелами. Вот тогда это нечитабельное говно.
Так это как раз K&R. И по K&R нет соглашения по-поводу того как ставить отступ и какой он должен быть.
why so sad?
В K&R IS скобки для одиночных операторов ставятся не зачем-то, а чтобы не допустить ошибку при изменении кода.
— Владимир Николаевич, они и грузинский знают!
— Что он сказал?
— Обезьяна, сын осла.
Повесить и застрелить! Но сначала сбрить хлипкую барадёнку.
А про итераторы тут же речи не идёт, контейнеров то нет.
Проблемы могут возникнуть только если у i достаточно сложный оператор ++, который компилятор не сможет заинлайнить.
a[i++] = rand();
если уж i++ хочется.
А вообще тут самое место для range-based-for из C++11.
select сделать не долго