我正在尝试执行以下操作:
#define IID(x) if (iid == x::iid()) {return true;}
#define CAST_LIST(...) \
bool isCastable(unit iid) { __VA_ARGS__ return false;}
想要使用一对宏来为函数生成代码,其中每个参数都提供if语句。
VA_ARGS 扩展正在插入逗号。我的问题是好吗?我几乎没有在C ++中使用逗号运算符。我把它称之为:
CAST_LIST( \
IID(ClassA), IID(ClassB))
预处理文件如下所示:
bool isCastable(unit iid) { if (iid == ClassA::iid()) {return true;}, if (iid == ClassB::iid()) {return true;} return false;}