不应该使用 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;
关于c++ - 为什么将 int 转换为 bool 会发出警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4968033/