我目前正在用 Qt (4.7) 编写一个小型应用程序。我使用嵌套的命名空间,比如
namespace app {
namespace core {
class CoreClass {...}
}
}
因为我有点懒惰,所以我使用符号作为包含打开和关闭命名空间声明的快捷方式:
APP_START
class CoreClass {...}
APP_END
这些符号在全局头文件中定义。
到目前为止,一切都很好。它在编译时完美运行。但是当 moc 生成器创建 moc 文件时,它错过了命名空间声明,并且方法是在标准命名空间中生成的。当不使用符号时,一切正常。
当我重新定义QT_BEGIN_MOC_NAMESPACE
符号时,编译器会在每个包含上引发重新定义警告。这确实有效,但我认为这不是很好。
这个问题有更好的解决方案吗?