Esiste qualche differenza tra il wrapping del contenuto dell'intestazione e del file cpp in uno spazio dei nomi o solo il contenuto dell'intestazione e quindi lo utilizzando lo spazio dei nomi nel file cpp?Creazione di uno spazio dei nomi C++ nell'intestazione e nell'origine (cpp)
Per differenza intendo qualsiasi tipo di penalizzazione delle prestazioni o semantica leggermente diversa che può causare problemi o qualsiasi altra cosa di cui ho bisogno di essere a conoscenza.
Esempio:
// 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;
}
}
Se non v'è alcuna differenza ciò che è la forma preferita e perché?
Dipende dal progetto e dallo stile. Spesso c'è uno spazio dei nomi principale per un carico di file in un modulo, e il secondo stile ha senso. –