VS 10 では、次の警告が表示されます。
warning C4800: 'int' : forcing value to bool 'true' or 'false' (performance warning)
コンパイルしようとしています
int x ;
static_cast<bool>(x);
この警告が発生しないコードを書くにはどうすればよいでしょうか?
これはどうですか:
x != 0
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
これはばかげた警告であり、無視/無効にすることができます。私の知る限り、パフォーマンスの問題はありません。