错误原因:
QT 的moc 元对象编译器不能够处理 BOOST_JOIN 这个宏。
解决方法:
在报错的位置,用 Q_MOC_RUN 进行隔离。Q_MOC_RUN是 moc 编译器在执行编译器启用的宏。例如:上述 has_binary_operator.hpp:51 第51行这个位置,将含有 BOOST_JOIN 的这一行隔离一下:
#ifndef Q_MOC_RUN
namespace BOOST_JOIN(BOOST_TT_TRAIT_NAME,_impl) {
#endif
然后对应括号结束的地方:
#ifndef Q_MOC_RUN
}
#endif
解决QT moc与BOOST_JOIN冲突

本文介绍了解决QT moc元对象编译器处理BOOST_JOIN宏时遇到的问题。通过使用Q_MOC_RUN宏隔离含有BOOST_JOIN的代码段,可以有效避免编译错误,确保代码正确编译。

被折叠的 条评论
为什么被折叠?



