¿Hay alguna diferencia entre envolver los contenidos del encabezado y del archivo cpp en un espacio de nombre o ajustar solo el contenido del encabezado y luego hacer usando el espacio de nombres en el archivo cpp?Creación de un espacio de nombres C++ en el encabezado y fuente (cpp)
Por diferencia quiero decir cualquier tipo de penalización de rendimiento o semántica ligeramente diferente que pueda causar problemas o cualquier cosa que deba tener en cuenta.
Ejemplo:
// 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;
}
}
Si no hay ninguna diferencia lo que es la forma preferida y por qué?
Depende del proyecto y el estilo. A menudo hay un espacio de nombres principal para una carga de archivos en un módulo, y el segundo estilo tiene sentido. –