- 1
- 2
- 3
- 4
#define loopv(v) for(int i = 0; i<(v).length(); i++)
#define loopvj(v) for(int j = 0; j<(v).length(); j++)
#define loopvk(v) for(int k = 0; k<(v).length(); k++)
#define loopvrev(v) for(int i = (v).length()-1; i>=0; i--)
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+168
#define loopv(v) for(int i = 0; i<(v).length(); i++)
#define loopvj(v) for(int j = 0; j<(v).length(); j++)
#define loopvk(v) for(int k = 0; k<(v).length(); k++)
#define loopvrev(v) for(int i = (v).length()-1; i>=0; i--)
Может я чего недопонимаю?
Это из Cube 2: Sauerbraten
Остальные, возможно, временный костыль, который забыли выпилить.
Например, если реализовать в виде списка, то меняется одна строка на что-то вроде:
for(list_elem* i=v; i; i=i->next)
зато макросов там море, некоторые решают задачу через «жпоа»
например генерируется уникальное имя для функции некоторой команды в скриптовом языке при помощи номера строки вызова макроса. Следовательно в разных файлах нельзя объявлять эти самые команды.
Сам не шибко силен в с++, но там выстроена иерархия структур с функциями внутрях (отчего не классы — может так и лучше, не знаю).
И еще много разного, от чего я думаю что я точно идиот.
Это надо у них спросить, чего они извращаются. Может, и объяснят!
Стоит ли это конкретно выправить, написать комментарий, что так делать нельзя и отправить кто там поддержкой всего этого занимается в виде патча?
Именно этого пывтались достичь авторы вышепроцитированных макросов. Идея - хорошая и похвальная. Реализация - говнокодовая. Есть такой стиль говнокодирования, когда самый верхний целочисленый цикл - всегда по `i`, вложенный в него - по `j`, а в него - по `k`. Причем независимо от того, по чему именно ведется итерирование. Вот под такой стиль организации циклов и заточены вышеприведенные макросы.
#define loopiv(i,v) for(int i = 0; i<(v).length(); i++)
и многа, многа такога... лососнули тунцов?
без вашей помощи хер бы разобрались
так возблагодарим же Кернигана с Ричи за такой подарок говнокоду.