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 Compiler 确认,它对两个类都抛出错误。