これはコンパイラのバグですか?演算子が名前空間のスコープ内にあり、グローバルスコープ内に他のものを隠しています
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:あなたのリンクされたコードが "is a bug"をどのようにサポートしているかわかりません。 –