3

Is there a way to check whether a preprocessor symbol is defined but without value?

Consider the following bit of code:

#if defined( FOO )
  #if FOO == 1
    #error FOO defined to 1.
  #else
    #error FOO defined to other value than 1.
  #endif
#else
  #error FOO undefined
#endif

int main() {}

As is, this will give:

error: #error FOO undefined

If I add #define FOO 1 to the top, I get:

error: #error FOO defined to 1.

So far, so good. But when I change that to #define FOO (i.e., defining FOO, but not defining it to something), I get:

error: operator '==' has no left operand

Is there a way to check whether a preprocessor symbol is defined but without value?

DevSolar
  • 67,862
  • 21
  • 134
  • 209

0 Answers0