2
我遇到了一個奇怪的問題,可能是也可能不是bug。函數名稱的全局名稱空間說明符用typedef正確解析?
下面的代碼片段無法在叮噹4.2編譯,但在gcc上執行,因爲它解析「baz :: test」作爲返回類型。
typedef int baz;
namespace foo { class bar; }
baz test(foo::bar &);
namespace foo {
class bar {
private:
int f;
friend baz ::test(bar &);
};
}
friend int ::test(bar &)
編譯一樣,friend baz (::test)(bar &)
。
我已經瀏覽了一下這個標準,試圖看看clang的行爲是否正確,而沒有深入瞭解。這是叮噹聲中的錯誤嗎?