Работая со структурой модульного тестирования, я столкнулся с ситуацией, когда мне нужно проверить аргументы макроса. Проще говоря, я хотел бы расширить макрос FOO(x)
так, чтобы FOO(int)
был short
и FOO(anything_else)
будет длинным
.
С шаблонами C++, конечно, это не проблема. Но здесь мне нужна настоящая замена токена, а не просто typedef
. т.е. FOO(char) FOO(char) i;
должно быть допустимым определением, равным long long i;
.