у меня есть такой макрос* где __type не расширен.Кто-нибудь знает, как его расширить?
__type
Вы должны использовать двухэтапный макрос для конкатенации, например.
#define CONCAT_(x, y) x ## y #define CONCAT(x, y) CONCAT_(x, y) if (iter->second.type() == CONCAT(CONCAT(json_spirit::, __type), _type)