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