共有ヘッダーにいくつかの共通エイリアスを設定して、個々のヘッダーで個別に宣言する必要がないようにします。ただし、この共有ヘッダーにターゲット名前空間のヘッダーを含めたくはありません。エイリアスを宣言するだけです。これは可能ですか?
たとえばnamespace GE = Graphics::Engine;
、グラフィックエンジンヘッダーを含めずに必要です。
共有ヘッダーにいくつかの共通エイリアスを設定して、個々のヘッダーで個別に宣言する必要がないようにします。ただし、この共有ヘッダーにターゲット名前空間のヘッダーを含めたくはありません。エイリアスを宣言するだけです。これは可能ですか?
たとえばnamespace GE = Graphics::Engine;
、グラフィックエンジンヘッダーを含めずに必要です。
事前に名前空間を宣言しておくと、次のことができます。
namespace Graphics {
namespace Engine {}
}
namespace GE = Graphics::Engine;
名前空間は宣言後に開いているので、事前に宣言してください。
namespace Graphics{ namespace Engine{} }
namespace GE = Graphics::Engine;
私はそれに反対することをお勧めします。それは可能であり、十分に単純ですが、効果的に行っているのは、ヘッダーのすべてのユーザーにエイリアスの選択を強制することです。
この手法を使用してコンポーネントを構築し、General Electricがソフトウェアを購入すると、突然、名前空間の任意の衝突が発生します。特別な理由なしに競合を作成しています。使いやすく、可能な限り一意の名前空間スキームを選択し、それに従います。GE::type
ショートカットを追加すると、コードが複雑になるだけです(との違いは何Graphics::Engine::type
ですか?)