使用static_cast
将int转换为bool是不可以的,因为它会转换隐式转换的反向,但我仍然会收到警告?
示例:
MSVC++ 8
bool bit = static_cast<bool>(100);
最佳答案
仅仅因为a => b的转换是隐式的,所以没有说相反的可行性b => a。
就您而言,您根本不应施放。只需做显而易见的事情:比较:
bool result = int_value != 0;
这是将
int
转换为bool
的唯一逻辑上正确的方法,它使代码更具可读性(因为它使假设明确)。顺便说一句,相反的情况也是如此。从
bool
隐式转换为int
只是懒惰。使映射明确:int result = condition ? 1 : 0;