私は現在Qt(4.7)で小さなアプリケーションを書いています。mocファイルでカスケードされた名前空間を使用するにはどうすればよいですか?
APP_START
class CoreClass {...}
APP_END
記号はAで定義されています。そして私は、私はリッテ少し怠け者なので、私は開閉名前空間宣言を保持するショートカットのシンボルを使用しています
namespace app {
namespace core {
class CoreClass {...}
}
}
のようなネストされた名前空間を使用しますグローバルヘッダーファイル。
これまでのところ、とても良いです。コンパイル時に完璧に動作します。しかし、mocジェネレータがmocファイルを作成すると、名前空間宣言が欠落し、メソッドが標準名前空間に生成されます。シンボルを使用しないと、すべて正常に動作します。
QT_BEGIN_MOC_NAMESPACE
シンボルを再定義すると、コンパイラはすべてのインクルードに対して再定義警告をスローします。これは確かに機能しますが、それは本当にいいとは思いません。
この問題の解決策がありますか?
私はQt Creatorを使用しているので、それはそう思わないでしょう。なぜあなたはmoc dosn'tは、私に良いと聞こえるSubunitを行うあなたのアプローチ。私はそれに従っています。 –
私はQtツールからmocジェネレーターを少し使っていました。そして、プリプロセッサディレクティブを解析するように指示する方法はないようです。悲しい。 –
BTW 'Q_MOC_RUN'シンボルも機能しません。 –