我见过基于int变量而不是bool评估条件的代码。
int condition
cin >> condition;
if (!condition)
//do something
我知道C ++支持0是假的,1是真的,但这是安全的代码吗?是否所有C ++编译器都支持它作为标准?
考虑到您可能会切换到另一种语言并发现不支持这种代码,这也是一种不好的做法吗?
我的意思是,这是不是很好的做法?
答案 0 :(得分:3)
是的,做出这个假设是安全的。该标准定义了各种基元到bool
的隐式转换,所有数字类型基本上都表明0
转换为false
,任何非零值都转换为true
。