在VS 10中,我收到警告:
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
尝试编译
int x ;
static_cast<bool>(x);
如何编写一个不会导致此警告的代码?
答案 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)
这是一个愚蠢的警告,可以忽略/禁用。据我所知,没有性能问题。