【发布时间】:2012-05-11 11:22:09
【问题描述】:
据我所知,没有 C/C++ 书籍教程或手册提及此技术。可能因为只是一件小事,不值一提。
我使用它是因为 C/C++ 将 bool 类型与 int、long、pointer、double 等...混合在一起。需要将非布尔值转换为布尔值是很常见的。使用 (bool)value 来做到这一点是不安全的,所以我使用 !! 来做到这一点。
例子:
bool bValue = !!otherValue;
【问题讨论】:
-
我没听说有任何问题。
-
“使用 (bool)value 来做这件事是不安全的”为什么?
-
没有像 C/C++ 这样的语言。
-
@KarlKnechtel:这仍然是 c 风格的演员表。 C++ 转换为
static_cast<bool>(value)