class __declspec(dllexport) DI_1
{
DI_1& operator = (DI_1 &){};
};
class DI_2
{
DI_2& operator = (DI_2 &){};
};
int main()
{
DI_1 a;
DI_2 b;
return 0;
}
でコンパイルするとVS 2010/2012
、次のエラーが発生します。
エラーC4716:'DI_1 :: operator =':値を返す必要があります
DI_2
一方、クラスでも同じエラーが返されることを期待していました。
DI_2
これは、クラスにエラーとしてフラグを立てないコンパイラのバグですか?
そうでない場合、誰かが理由を説明できますか?
編集:Solarisコンパイラで確認しましたが、両方のクラスでエラーがスローされます。