有没有办法使用#define
作为扩展的宏的参数?
考虑这个例子:
#define FOO BAR
#define USE_FOO(the_foo, fooinator) void do_use_foo_ ## the_foo()\
{ std::cout << #the_foo << fooinator << std::endl;}
USE_FOO(FOO, "baz")
USE_FOO(FOO, "baz)
扩展为
void do_use_foo_FOO () {
std::cout << "FOO" << "baz" << std::endl;}
虽然我希望(并希望)它扩展到
void do_use_foo_BAR () {
std::cout << "BAR" << "baz" << std::endl;}
将FOO定义为顶部的BAR。我缺少什么,有没有办法达到我的期望?