嵌套匿名命名空间与在翻译单元的顶层有什么区别?
namespace Named { namespace { void impl () {...} } void fun () { impl(); }}
namespace Named {
namespace {
void impl () {...}
}
void fun ()
{
impl();
或
namespace { void impl () {...}}namespace Named { void fun () { impl(); } }
czfnxgou1#
与所有名称空间相同-查找规则。在第一个例子中,如果Named已经有自己的void impl(){},那将是一个错误。在第二种情况下,如果Named::impl存在,它将被默默地接管anonymous-namespace::impl。See it online
Named
void impl(){}
Named::impl
anonymous-namespace::impl
1条答案
按热度按时间czfnxgou1#
与所有名称空间相同-查找规则。在第一个例子中,如果
Named
已经有自己的void impl(){}
,那将是一个错误。在第二种情况下,如果Named::impl
存在,它将被默默地接管anonymous-namespace::impl
。See it online