- 1
- 2
- 3
- 4
- 5
- 6
#define DOISA(x,p,y) \
ClassID x::isA() const{return y;} \
MYBoolean x::isA(ClassID i) const \
{ \
return (i == x::isA() ? TRUE : p::isA(i)); \
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+153
#define DOISA(x,p,y) \
ClassID x::isA() const{return y;} \
MYBoolean x::isA(ClassID i) const \
{ \
return (i == x::isA() ? TRUE : p::isA(i)); \
}
Ядро большого проекта. Имеется довольно большая иерархия наследуемых классов с виртуальными методами isA(). Все эти методы зачем-то сворачиваются в этот макрос.
И прятать классы в макросы - косчунство. Потом их соседи по проекту наверное долго искали... :D
> ClassID x::isA() const{return y;}
или поддерживается альтернативный граф "что есть что" - иначе бы return параметризировать не надо было.