小编squ*_*tch的帖子

if (static_cast<bool>(x)) 与 if (x)

我有一位同事经常在条件语句中对 bool 进行显式强制转换,如下所示:

\n\n
SomeType *ptr = /* some value */;\nif (static_cast<bool>(ptr)) {\n    // do something\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

但我一直找不到如此冗长的充分理由。有任何想法吗?

\n\n

编辑:同事说 \xe2\x80\x99 是为了清晰和明确,但我不\xe2\x80\x99t 发现这个解释非常引人注目。我在这里提出这个问题是为了看看其他 C++ 专家是否建议这样做,如果是的话,也许会出现一个更有说服力的论点。

\n

c++ casting conditional-statements implicit-conversion explicit-conversion

7
推荐指数
2
解决办法
1439
查看次数