如果允許我在想:內嵌命名空間和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