Gibt es einen Unterschied zwischen dem Umschließen von Header- und CPP-Dateiinhalten in einen Namespace oder dem Umschließen nur des Headerinhalts und dem anschließenden Verwenden des Namespace in der CPP-Datei?
Mit Unterschied meine ich jede Art von Leistungseinbußen oder leicht abweichenden Semantiken, die Probleme verursachen können oder alles, was ich beachten muss.
Beispiel:
// 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;
}
}
Wenn es keinen Unterschied gibt, welche Form wird bevorzugt und warum?