2

共有ヘッダーにいくつかの共通エイリアスを設定して、個々のヘッダーで個別に宣言する必要がないようにします。ただし、この共有ヘッダーにターゲット名前空間のヘッダーを含めたくはありません。エイリアスを宣言するだけです。これは可能ですか?

たとえばnamespace GE = Graphics::Engine;、グラフィックエンジンヘッダーを含めずに必要です。

4

3 に答える 3

8

事前に名前空間を宣言しておくと、次のことができます。

namespace Graphics {
    namespace Engine {}
}
namespace GE = Graphics::Engine;
于 2013-03-26T13:03:55.360 に答える
8

名前空間は宣言後に開いているので、事前に宣言してください。

namespace Graphics{ namespace Engine{} }
namespace GE = Graphics::Engine;
于 2013-03-26T13:04:24.383 に答える
2

私はそれに反対することをお勧めします。それは可能であり、十分に単純ですが、効果的に行っているのは、ヘッダーのすべてのユーザーにエイリアスの選択を強制することです。

この手法を使用してコンポーネントを構築し、General Electricがソフトウェアを購入すると、突然、名前空間の任意の衝突が発生します。特別な理由なしに競合を作成しています。使いやすく、可能な限り一意の名前空間スキームを選択し、それに従います。GE::typeショートカットを追加すると、コードが複雑になるだけです(との違いは何Graphics::Engine::typeですか?)

于 2013-03-26T13:21:15.927 に答える