int到bool cast

时间:2013-01-09 16:50:50

标签: c++ casting boolean int warnings

在VS 10中,我收到警告:

warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)

尝试编译

int x ;
static_cast<bool>(x);

如何编写一个不会导致此警告的代码?

3 个答案:

答案 0 :(得分:7)

这是怎么回事:

x != 0

答案 1 :(得分:2)

int x ;
bool b1 = !!x;  // common idiom; get used to it.  "Newcomers" just need to learn the idiom.
bool b2 = x!=0; // another way, less idiomatic

答案 2 :(得分:1)

这是一个愚蠢的警告,可以忽略/禁用。据我所知,没有性能问题。