如果允许我在想:内嵌命名空间和ambigous声明
namespace A {
inline namespace B {
int a;
}
int a;
}
void foo() {
A::a = 0; // clang 3.4 compiles, but gcc doesn't
}
标准说,这
最后,通过明确 资格封闭命名空间查找一个名称(3.4 .3.2)将包含由using-directive引入的内联名称空间 的成员,即使在封闭名称空间中有名称为 的声明。
但我不明白。
'gcc 4.9'和'clang 3.5'都不允许这个代码,你可以尝试[wandbox](http://melpon.org/wandbox/)...'铛3.4'虽然,看起来像一个bug – 2014-12-02 15:12:54
@ShafikYaghmour谢谢你,沙菲克。这是很好的资源。是的,我在我的工作中尝试了这个代码,在这里我有clang-3.4 – Bikineev 2014-12-02 15:18:12