The following code does NOT generate the #error
, but instead compiles, runs, and output the trace value 37 (TT_LAST_PARM equals 53 and TT_FIRST_PARM equals 16):
#if ((TT_LAST_PARM - TT_FIRST_PARM) >= 32)
#error More than 32 parm tokens
#else
HTRACE("%d", TT_LAST_PARM - TT_FIRST_PARM);
#endif
If I hard code the values,
#if ((53 - 16) >= 32)
#error More than 32 parm tokens
#else
HTRACE("%d", 53 - 16);
#endif
the pre-processor DOES generate the error:
Error 1 fatal error C1189: #error : More than 32 parm tokens d:\codeMTX\Knowbase\KBMatL\PrintParser.CPP 2663