- 1
- 2
- 3
- 4
- 5
- 6
bool or(bool x1, bool x2) {
if (x1 || x2)
return true;
else
return false;
}
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+183
bool or(bool x1, bool x2) {
if (x1 || x2)
return true;
else
return false;
}
Я РЕАЛЬНО видел такой код, написанный на полном серьёзе.
http://ipicture.ru/uploads/20101115/QnXoU0ny.png
В Notepad++ or подсвечивается, но Борландом такой код не компилируется (как только я заменил or на ||, код сразу же скомпилировался).
Если действительно or есть, то подскажите мне ряд компиляторов, в которых он поддерживается.
#include <govnokod>
и выключить предупреждения в свойствах проекта
Чтобы помочь сему куску говонкода избавиться от приставки "говёности", говнокодеру на сях нужно было бы написать так(хотя затея с добавлением or странная):
inline bool or(bool x1, bool x2)
{
return (x1 || x2);
}
унылый долбоебизм
1) поганая реализация функции.
2) сделана ненужная функция (захламляет код тока), которая даже не инлайновая.
3) и вообще, функция не делает того, что должна: нельзя написать or(ptr == NULL, ptr->field == NULL).
Реальное говно, что неполная проверка уже того (пункт 3).
но функция все-равно лишняя.
Например, у вас есть реализация некоего абстрактного общего алгоритма, который должен быть параметризован снаружи конкретной булевской функцией-callback-ом. Например, это может быть алгоритм выполнения некоей теоретико-множественной операции над двумя наборами полигонов (пересечение, объединение, разность и т.п.)
За использование имени `or`, конечно, стоит пожурить, ибо является оно одним из alternative tokens.
bool (*)(bool, bool) - Гениально!
template<typename _callback_>
bool or(bool l, bool r, _callback_ true_or) { return true_or(l, r); } - вот так оказывается пишут реальные пацаны!
Некоторые операции в качестве параметра требуют функцию. Из-за отсутствия в языке анонимных методов приходится писать несколько тупых однострочных функций типа
{return i==j}
{return a[i]>0}
и так далее
Да и название функции это никак не отражает - увидя конкретно этот код, не зная особенностей остальных исходников, возникает вывод о говнокоде.
Этот же вывод слелает новый программист, которого посадят на этот проект.
Только у него уже будет контекст перед глазами.
а где-то в инклудах упоминание модуля встречается, а где - хз.
такое может быть?)
контекст найти можно, но его ж искать придется - сразу не видно%)