嵌套匿名命名空间与将其置于翻译单元的顶层有什么区别?
namespace Named {
namespace {
void impl () {...}
}
void fun ()
{
impl();
}
}
或者
namespace {
void impl () {...}
}
namespace Named {
void fun ()
{
impl();
}
}
与所有命名空间相同 - 查找规则。在第一个示例中,如果
Named
已经拥有自己的 void impl(){}
,那将是一个错误。在第二种情况下,如果Named::impl
存在,它将默默地接管anonymous-namespace::impl
。 网上看