显式运算符布尔错误

explicit operator bool error

本文关键字:错误 布尔 运算符      更新时间:2023-10-16

当我尝试实现explicit operator bool时,我收到编译器错误 C2071:

class C
{
public:
    explicit operator bool() const
    {
        return !!*this;
    }
};

为什么?如何解决这个问题?
我正在使用Visual Studio 2012 RC。

Visual

Studio 2012 不支持显式转换运算符,请参阅 Visual C++ 11 中的C++11 功能。

这些文章讨论了安全布尔成语

  • http://www.artima.com/cppsource/safebool.html
  • http://en.wikibooks.org/wiki/More_C++_Idioms/Safe_bool

如果您查看Visual Studio 2010中的功能列表,您会发现它不是一个可用的功能。查看Visual Studio 2012中Visual C++的新增功能,可以发现尚未添加。