I have some code that essentially condenses down to
#define FOO(a) FOO(std::map);
But it emits a compile error (too many ac
The preprocessor will only treat unparenthesised commas as a macro argument separator. So what you can do is rewrite std::map into something that has parentheses around it. A simple one might be decltype(std::map()).
std::map
decltype(std::map())