想不通这个是怎么回事。这是我正在尝试做的一个例子。
class WhatThe
{
public:
WhatThe(std::string Type, int channel) {}
~WhatThe() {}
void Doitnow() {}
};
#define DO_SOMETHING_TEST1 WhatThe("TEST1", channel)
#define DO_SOMETHING_TEST2 WhatThe("TEST2", channel)
#define DO_IT(type, channel) \
DO_SOMETHING_##type.Doitnow()
然后打电话
DO_IT(TEST1,1);
我收到一个 -- 错误:“通道”未在此范围内声明
我什至可以做的是,你能在宏中包含宏并通过它们传递参数吗?我本来以为
DO_SOMETHING_##type.Doitnow()
最终会扩大到
WhatThe("TEST1", 1).DoitNow()