В моей текущей кодовой базе я вижу следующий шаблон:
#if SOMETHING_SUPPORTED+0 != 0
...
#endif
К сожалению, это очень старая база кода, и никто не знает, как и почему она началась. Я думаю, что это началось в C, и оно было медленно преобразовано в C с классами, и теперь оно имеет тенденцию к С++
Я не вижу явного преимущества использования предыдущей конструкции вместо "классической", но, может быть, мне что-то не хватает:
#if SOMETHING_SUPPORTED
...
#endif
Знаете ли вы, зачем использовать #if MACRO+0 != 0
вместо #if MACRO
?