Czy jest jakaś różnica między zawijaniem zawartości pliku nagłówka i pliku cpp w przestrzeni nazw lub zawijaniem samej zawartości nagłówka, a następnie użyciem przestrzeni nazw w pliku CPP?
Przez różnicę rozumiem każdy spadek wydajności lub nieco inną semantykę, która może powodować problemy lub cokolwiek, o czym muszę wiedzieć.
Przykład:
// 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;
}
}
Jeśli nie ma różnicy, jaka jest preferowana forma i dlaczego?