В другом вопросе я просто заметил эту маленькую жемчужину мудрости C:
#define for if (false) {} else for
из-за чего MSVC вытолкнул предупреждения "постоянного выражения" для довольно корректного оператора:
for (int i = 0; i <= 10; i++) {...}
Я понимаю, почему MSVC жалуется, потому что он расширяется до:
if (false) {} else for (int i = 0; i <= 10; i++) {...}
Я просто не понимаю, почему разработчики будут использовать этот маленький фрагмент. У кого-нибудь есть идея?