Как стать автором
Обновить

Комментарии 5

Как видно по сигнатуре функции, _isTagged имеет модификатор const, а значит, побочных эффектов у этой функции нет.

Глупость, модификатор const никак не может означать отсутствие побочных эффектов, ведь существует такая штука как глобальные переменные.


Тут надо или смотреть тело функции, или же можно просто сказать, что функция, которая начинается с префикса is, по соглашению не не может иметь видимых побочных эффектов в любом нормальном проекте.

Автор задается не теми вопросами.

Возможны два варианта:
— хитрейший замысел, что функция имеет побочные эффекты и ее надо вызывать всегда и кто-то решил все написать в одну строку, причем сделав вызов функции вторым операндом, полагаясь на отсутствие short-circuit в бинарном & и на implicit conversion в bool.
— банальная опечатка или незнание, что & != &&.

Бритва Хэнлона же.

Такое чувство, что во всех ошибках, где использовали односимвольные переменные, программистам помогло автозаполнение в редакторе кода.

Мораль: Если уже уставший, то лучше отключить автозаполнение, чтобы после меньше заморочиваться с опечатками от ложных предположений редактора кода.

Полезный вывод: Если чувствуешь, что совсем голова не соображает, то лучше сохранись, поставь комментарием метку где продолжить и пойти покурить на 30 минут. Потому что как показывает практика ловить ошибку от поседствий усталости в 3 раза затратней по времени, чем писать код с нуля.

Если вы начали проверять "популярные в узких кругах" библиотеки, то проверьте Ogre3D. Что-то подсказывает мне что вы найдете там много примеров интересных ошибок человеческого фактора, потому что после ухода Sinbad из проекта (ментейнер), там всякая дичь происходит.

Спасибо за предложение, посмотрим.

Зарегистрируйтесь на Хабре, чтобы оставить комментарий