使用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;

08-26 19:44
查看更多