我有一位同事经常在条件语句中对 bool 进行显式强制转换,如下所示:
\n\nSomeType *ptr = /* some value */;\nif (static_cast<bool>(ptr)) {\n // do something\n}\nRun Code Online (Sandbox Code Playgroud)\n\n但我一直找不到如此冗长的充分理由。有任何想法吗?
\n\n编辑:同事说 \xe2\x80\x99 是为了清晰和明确,但我不\xe2\x80\x99t 发现这个解释非常引人注目。我在这里提出这个问题是为了看看其他 C++ 专家是否建议这样做,如果是的话,也许会出现一个更有说服力的论点。
\nc++ casting conditional-statements implicit-conversion explicit-conversion