考虑以下两个语句:
namespace foo = bar;
和
namespace foo { using namespace bar; }
这两个陈述是否相当,还是有一些我不知道的细微差别?
(请注意,这不是编码风格的问题 – 我只是对C解析感兴趣).
解决方法
namespace foo=bar;
这不影响任何名称查找规则.唯一的影响是让’foo’别名为’bar’.例如:
namespace bar { void b(); } void f () { bar::b (); // Call 'b' in bar foo::b (); // 'foo' is an alias to 'bar' so calls same function }
以下更改查找规则
namespace NS { namespace bar { } namespace foo { using namespace bar; void f () { ++i; } } }