【发布时间】:2010-12-23 07:14:54
【问题描述】:
当我做类似的事情时,我觉得我很酷:
布尔 hasParent() { 返回 this->parentNode ; }即使使用 (bool) 强制转换,警告仍然不会消失。
其中 this->parentNode 在没有父节点时为 NULL。
但我得到了:
警告 C4800:“节点 *”:强制值为布尔值“真”或“假”(性能警告)怎么了,哟?为什么这是性能警告?我认为不写这样的东西会更有效率:
布尔 hasParent() { 如果(这个->父节点) 返回真; 别的 返回假; }但是第二个版本没有产生任何警告,编译器似乎更开心了。哪个更快?
【问题讨论】:
-
解决方法:将
(expr)更改为!!(expr) -
看起来太刺激了
标签: c++ casting performance