這是編譯器錯誤嗎?名稱空間域中的操作符在全局範圍內隱藏另一個
template <typename T>
T& operator++(T& t)
{
return t;
}
namespace asdf {
enum Foo { };
enum Bar { };
Foo& operator++(Foo& foo);
void fun()
{
Bar bar;
++bar;
}
} // end namespace asdf
int main()
{
return 0;
}
的GCC 4.7的錯誤消息是:
Foo& operator++(Foo& foo);
[是的是](http://liveworkspace.org/code/2vreOi$0).... –
不這樣認爲。 VC++生成相同的。 – SChepurin
@KarthikT:我不確定你的鏈接代碼是如何支持「是一個bug」的 - 參數。 –