Есть ли разница между переносом содержимого заголовка и файла 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;
}
}
Если естьбез разницы какая форма предпочтительнее и почему?