Working with a unit test framework, I came across a situation in which I'd like to test macro arguments. Simply said, I'd like to expand the macro FOO(x)
such that FOO(int)
would be short
and FOO(anything_else)
would be long
.
With C++ templates, of course this isn't a problem. But here I need a real token replacement, not just a typedef
. I.e. FOO(char) FOO(char) i;
should be a valid definition equal to long long i;
.