Al usar un espacio de nombre anónimo, ¿hay algún problema si está anidado dentro de otro espacio de nombres? Por ejemplo, ¿hay alguna diferencia real entre Foo1.cpp y Foo2.cpp en el siguiente código:Espacio de nombres anónimo anidado?
// Foo.h
namespace Foo
{
void fooFunc();
}
// Foo1.cpp
namespace Foo
{
namespace
{
void privateFunction()
{
...
}
}
void fooFunc()
{
privateFunction();
}
}
// Foo2.cpp
namespace
{
void privateFunction()
{
...
}
}
namespace Foo
{
void fooFunc()
{
privateFunction();
}
}
Los símbolos exportados serán diferentes. Echa un vistazo a la salida nm. –
Para ser pedante, el término técnico es 'namespace' sin nombre, no anónimo. – GManNickG
Las uniones son anónimas, el espacio de nombres no tiene nombre. Pero a quién le importa :) –