是否有可能强制Qt MOC扩展我的一些自定义预处理器定义以实现某种2遍预处理? E.g:
// MOC macro
@MOC #define add(a, b) (a + b) // Should be expanded by MOC (1st run)
// "Normal" macro
#define sub(a, b) (a - b) // Should be expanded by preprocessor (2nd run)
答案 0 :(得分:1)
如果您的目标是仅在Moc传递期间启用或禁用某些宏,则可以测试由{peppe暗示的Q_MOC_RUN
定义。
#ifdef Q_MOC_RUN
#define MyMacro valueDuringMoc
#else
#define MyMacro defaultValue
#endif
如果你想依靠与MOC相同的机制构建自己的预处理器规则,即在最终版本中包含的.h文件中生成额外的C ++代码,那么你应该看一下other question