ヘッダーとcppファイルの両方の内容を名前空間でラップすることと、ヘッダーの内容だけをラップしてからcppファイルで名前空間を使用することとの間に違いはありますか?
違いとは、問題や私が知っておく必要のあることを引き起こす可能性のある、あらゆる種類のパフォーマンスの低下やわずかに異なるセマンティクスを意味します。
例:
// header
namespace X
{
class Foo
{
public:
void TheFunc();
};
}
// cpp
namespace X
{
void Foo::TheFunc()
{
return;
}
}
VS
// header
namespace X
{
class Foo
{
public:
void TheFunc();
};
}
// cpp
using namespace X;
{
void Foo::TheFunc()
{
return;
}
}
違いがない場合、推奨される形式とその理由は何ですか?