我有一个同事,通常在条件句中对布尔进行显式转换,例如:
SomeType *ptr = /* some value */;
if (static_cast<bool>(ptr)) {
// do something
}
但是我无法找到这种冗长的理由。有什么想法吗?
[if (static_cast<bool>(ptr))
完全等同于if (ptr)
。
广义上讲,没有客观的充分理由这样做。对于指针,它实际上是不利的。指针到bool
的转换是C ++中定义明确的操作,自C时代以来(可能还有更早)。这是每个C ++程序员需要学习