Just as the title says. I want to use a preprocessor macro in the text of an #error statement:
#define SOME_MACRO 1
#if SOME_MACRO != 0
#error \"SOME_MACRO
In Visual Studio you can use pragma
message as follows:
#define STRING2(x) #x
#define STRING(x) STRING2(x)
#define SOME_MACRO 1
#if SOME_MACRO != 0
#pragma message ( "SOME_MACRO was not 0; it was " STRING(SOME_MACRO) )
#error SOME_MACRO was not 0;
#endif
This will generate two messages, but you'll get the value of SOME_MACRO
. In G++ use the following instead (from comments: g++ version 4.3.4 works well with parenthesis as in the code above):
#pragma message "SOME_MACRO was not 0; it was " STRING(SOME_MACRO)