#define TF_RADIO_IDS_10(baseClass,displayNameBase,index10) \ class baseClass##_##index10##1 : baseClass {displayName = displayNameBase index10##1; }; #define TF_RADIO_IDS_100(baseClass,displayNameBase,index100) \ TF_RADIO_IDS_10(baseClass,displayNameBase,index100##1) TF_RADIO_IDS_100(ItemRadio,test,1)
With this macro i would expect the class ItemRadio_111 to be created.
Because the processed string should be
ItemRadio##_##index100##index10##1 -> ItemRadio##_##1##1##1.
But the real Preprocessor output of binarize.exe will be ItemRadio_1##1 which is of cause unusable. It seems like the ## operator will not be evaluated when it was used in a Parameter to a macro.
In my case i have to generate 1000 items which are all only different by classname and the number at the end of their classname. It was previously done by having a 1000 line macro which is horrendous.
Mikeros Rapify tool does it just fine btw.