相关疑难解决方法(0)

是!! 在C++中转换为bool的安全方法?

[这个问题有关,但并不等同于这一个 ]

如果我尝试使用某些类型的值作为布尔表达式,我会收到警告.我有时使用三元运算符(?:)转换为bool 而不是抑制警告.使用两个not运算符(!!)似乎做同样的事情.

这就是我的意思:

typedef long T;       // similar warning with void * or double
T t = 0;
bool b = t;           // performance warning: forcing 'long' value to 'bool'
b = t ? true : false; // ok
b = !!t;              // any different?
Run Code Online (Sandbox Code Playgroud)

那么,双重技术真的做同样的事吗?它比三元技术更安全吗?这是技术与非整数类型(例如,具有同样安全void *doubleT)?

我不是在问好!!t风格.我在问它是否在语义上不同于t ? true : false.

c++ boolean visual-c++

49
推荐指数
6
解决办法
2万
查看次数

标签 统计

boolean ×1

c++ ×1

visual-c++ ×1