В настоящее время я пишу небольшое приложение с Qt (4.7). И я использую вложенные пространства имен, такие как
namespace app {
namespace core {
class CoreClass {...}
}
}
Поскольку я немного ленив, я использую символы для ярлыков, которые содержат открывающие и закрывающие объявления пространств имен:
APP_START
class CoreClass {...}
APP_END
Символы определены в глобальном заголовочном файле.
Все идет нормально. Он отлично работает во время компиляции. Но когда генератор moc создает файлы moc, он пропускает объявления пространств имен, и методы генерируются в стандартном пространстве имен. Когда не используйте символы, все работает нормально.
Когда я переопределяю символ QT_BEGIN_MOC_NAMESPACE
, компилятор выдает предупреждение о переопределении при каждом включении. Это действительно работает, но я думаю, что это не очень приятно.
Есть ли лучшее решение этой проблемы?