The evaluation order of both the # and ## preprocessor operators is unspecified. Compilers have been known to implement
these operators inconsistently, therefore, to avoid these problems, do not use them.
Noncompliant code example
#define A(Y)   #Y    /* Noncompliant */
#define A(X,Y) X##Y  /* Noncompliant */