6 | This is part of both standard C and C++ and is not implementation-specific. The # preprocessing operator stringizes its argument. It takes whatever tokens were passed into the macro for the parameter designated by its operand (in this case, the parameter mapClassName ) and makes a string literal out of them. So, for a simple example,
Note that the argument tokens are not macro replaced before they are stringized, so if Hello orWorld were defined as a macro, the result would still be the same. You need to use an extra level of indirection to get the arguments macro replaced (that linked answer discusses the concatenation operator, ## , but applies equally to the stringization operator. | ||||||||
|
c++ - Argument Preceded by a # Token in a Macro - Stack Overflow
'via Blog this'