C++中看上去有些奇怪的惯用法:int和bool之间的转换

int和bool默认就可以相互转换,但是在某些编译器的某些设置下,执行隐式转换会报warning(VS2015)。

当然,可以使用 static_cast 来显式转换,但我很少这样用。

这里演示一个更加看上去奇怪的惯用法(我自认为是的,不一定真的惯用)。

// int -> bool
int is_set_i = 1;
bool is_set = is_set_i != 0;
// bool -> int
bool is_set = true;
int is_set_I = is_set ? 1 : 0;

经过了长时间的项目开发,这种转换方法从来不会报warning。缺点是写起来繁杂了一些。

原文地址:https://www.cnblogs.com/demon90s/p/15651765.html