// We need to use prescan for these function // See cpp prescan feature for more informations #define _STRINGIFY(X) #X #define STRINGIFY(X) _STRINGIFY(X) #define _CONCAT2(X, Y) X ## Y #define CONCAT2(X, Y) _CONCAT2(X, Y) #define _CONCAT3(X, Y, Z) X ## Y ## Z #define CONCAT3(X, Y, Z) _CONCAT3(X, Y, Z) #define _CONCAT4(W, X, Y, Z) W ## X ## Y ## Z #define CONCAT4(W, X, Y, Z) _CONCAT4(W, X, Y, Z) #define _VAR1_ var1 #define _VAR2_ var2 #define _VAR3_ var3 #define _VAR4_ var4 #define RESULT CONCAT3(text, _VAR1_, _VAR2_) RESULT STRINGIFY(_VAR1_) STRINGIFY(const) CONCAT2(_VAR1_, _VAR2_) CONCAT3(_VAR1_, _VAR2_, _VAR3_) CONCAT4(_VAR1_, _VAR2_, _VAR3_, _VAR4_) CONCAT4(_VAR1_, const, _VAR3_, const)