Работа с модульной тестовой платформой, я столкнулся с ситуацией, в которой я хотел бы проверить макро аргументы. Проще говоря, я хотел бы расширить макрос FOO(x)
таким образом, чтобы FOO(int)
был бы short
и FOO(anything_else)
был бы long
.Могу ли я условно заменить аргументы препроцессора?
С шаблонами C++, конечно, это не проблема. Но здесь мне нужна настоящая замена токена, а не только typedef
. То есть FOO(char) FOO(char) i;
должно быть действительным определением, равным long long i;
.
В новейшем стандарте C есть функция, где текст замены макроса может зависеть от типа выражения первого аргумента. Вы можете использовать это как строительный блок. –
У вас есть взгляд на boost.pp, и если вы можете взломать somethign вместе с ним? – PlasmaHH
@StefanMajewsky: Вы имеете в виду Generics, я верю? – dirkgently