1

実装名前空間を使用しようとしましたが、「名前空間を使用」すると、実装名前空間全体が取り込まれ、役に立たなくなります。

namespace library {
 namespace implementation {
  //implementation
 }

 using namespace implementation

 //visible identifiers
}

実装から何かを使用する前に「implementation::」を使用する必要なく、実装を非表示にする方法はありますか?

4

1 に答える 1

7

それを役に立たなくする

まあ、それは役に立たないわけではありませんusing namespaceimplementation::その中の名前の前に明示的に追加する必要があります。このため、短い名前を選択するのが理にかなっている場合があります (detailこの目的で c++ プロジェクトで一般的に使用されます)。

また、ヘッダーのみと実装の非表示は、2 つのやや相反する要件であることも指摘しておきます。本当に実装を隠す必要がある場合は、ヘッダーのみにすることはできません。

于 2016-05-27T13:42:52.880 に答える