显式运算符布尔错误
explicit operator bool error
当我尝试实现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++的新增功能,可以发现尚未添加。
相关文章:
- 在没有定义返回类型的函数中返回布尔值,并将结果保存在无错误的char编译中-为什么
- 如何确保在使用基于布尔值的两个方法之一调用方法时避免分支预测错误
- SCANF 读取错误,因为使用 %d 读取布尔值
- 尝试设置唯一指针布尔数组的值时BAD_ACCESS错误
- 获取错误:之前在此处声明的布尔队列的编辑<T>
- 错误错误 C2872:"布尔值":kinect.h 的不明确符号
- 布尔值是通过引用传递的,但我仍然在 cpp 中遇到编译错误
- 返回类型布尔函数中的声明语法错误
- RCPP:将布尔值传递在列表中从R到C 函数的错误,该函数获取RCPP ::列表
- C++ 包含针对多种类型数据的布尔测试的模板会获得匹配错误
- 在一个作用域中推送五个对象指针,然后检查对象的布尔值是否为 false,会给出错误
- 随机生成的多维布尔指针错误
- 布尔变量 if 语句 C++ 上的分段错误
- 为什么当我将真或假分配给布尔类型的向量时,下面的程序给我错误?
- 布尔值,如果错误,请重复某些功能
- 调用布尔函数但收到错误"no matching function to call"?
- 布尔函数"Control reaches end of non-void function"错误
- 代码块布尔错误
- 错误:布尔运算符==必须正好接受两个参数
- 我的代码中的错误 - 布尔真值表