2017-04-05 10 views
0

私のクライアントには、名前空間を呼び出すコーディング標準があり、個々の名前とブレースを別々の行に定義する必要があります。これは、垂直方向のスペースを消費(チームのいくつかの開発者の迷惑となる点)につながる:自分のコードの大部分は完全に上で見た階層の並べ替えに包まれたファイルから構成されていることを考えるとC++でのマルチティア名前空間の指定

namespace MyCompany 
{ 
    namespace MyProduct 
    { 
     namespace ThisFunctionalUnit 
     { 
      : 
     } 
    } 
} 

namespace MyCompany { namespace MyProduct { namespace ThisFunctionalUnit 
{ 
    : 
}}} // namespace MyCompany::MyProduct::ThisFunctionalUnit 

他の問題が付いていますが、それは実行可能です。 Cない理由私の質問は、本当に++

namespace MyCompany::MyProduct::ThisFunctionalUnit 
{ 
    : 
} 

:しかし、C++での線に沿って、最初の場所で名前空間のマルチティアの仕様を許可された場合、全体の問題を離れて行くだろう私には思えますこれを許可する? ::をネームスペースレベルで使用すると、using namespaceが機能しなくなる可能性があります。

誰に、なぜこのような場合があるのか​​、それとも修正される可能性があるのか​​を知っていますか?

答えて

1

ネストされた名前空間の定義は、C++ 17には、今許可されます。

namespace A::B::C { 

それはと同等です:

namespace A { namespace B { namespace C {