使用匿名命名空间时,如果它嵌套在另一个命名空间中,是否存在任何问题?例如,是否有下面的代码Foo1.cpp和Foo2.cpp之间的真正区别:嵌套的匿名命名空间?
// 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();
}
}
导出的符号将有所不同。看看nm输出。 – 2010-01-19 14:41:56
只是迂腐,技术术语是'匿名命名空间',不是匿名的。 – GManNickG 2010-01-19 14:46:37
工会是匿名的,名字空间是未命名的。但谁在乎:) – 2010-01-19 14:55:21