C++ 显式运算符布尔错误
当我尝试实现C++ 显式运算符布尔错误,c++,c++11,operator-overloading,explicit,C++,C++11,Operator Overloading,Explicit,当我尝试实现显式运算符bool时,我得到: class C { public: explicit operator bool() const { return !!*this; } }; 为什么??我如何解决这个问题? 我正在使用Visual Studio 2012 RC。Visual Studio 2012不支持显式转换运算符,请参阅 这些文章讨论了安全布尔成语: 如果你查看一个功能列表,你会发现它不是一个可用的功能。查看尚未添加的节目。据我所
显式运算符bool
时,我得到:
class C
{
public:
explicit operator bool() const
{
return !!*this;
}
};
为什么??我如何解决这个问题?我正在使用Visual Studio 2012 RC。Visual Studio 2012不支持显式转换运算符,请参阅 这些文章讨论了安全布尔成语:
返回true代码>。我怀疑OP是这样实现的,因为操作符
已经用所需的语义重载,但只是没有包含在示例代码中。@Agent\u L:不,编译器没有非常精确地定义这些语义。。。或者,事实上,我想是的。他们将其定义为“去你的,去玩炸药吧,我不会帮你的。”在VisualStudio2012中,我安装了11月的CTP:这个编译器升级包应该添加(在其他C++11功能中)显式转换操作符。但是语法仍然不起作用。我错过什么了吗?