0

モジュールの分離/構造化に名前空間を使用する場合、ヘッダーファイル内のネストとインデントは劇的に増加します。次のコードをもっと短い方法で書く方法はありますか?

namespace A
{
    namespace B
    {
        namespace C
        {
            namespace D
            {
                namespace E
                {
                    template <typename T>
                    public class X
                    {
                        public: ...

例:

namespace A::B::C::D::E
{
  template<typename T> ...
}

C ++のヘッダーファイルに?

4

2 に答える 2

5

いいえ、ネストされた名前空間の構文は、以前にさまざまな時期と場所で提案されていましたが、有効ではありません。

ただし、インデントする必要はありません

namespace A { namespace B { namespace C {
// ...
} } } // namespace A::B::C
于 2012-05-22T13:17:53.823 に答える
2

名前空間エイリアシングを使用できます。これは、既存の名前空間を拡張する場合には機能しませんが、アクセスを容易にするために機能します。

マクロを使用して既存の名前空間を拡張できますが、これを行う必要ある場合は、必要または必要な名前空間階層よりも深い名前空間階層が存在する可能性があります。

于 2012-05-22T12:35:06.960 に答える