在Java中,我使用
if (a != null && a.fun());
利用短路求值并从左到右评估表达式,能否在C++中实现相同的功能?它们是否保证可以跨不同平台和编译器进行移植?
if (a != 0 && a->fun());
在Java中,我使用
if (a != null && a.fun());
利用短路求值并从左到右评估表达式,能否在C++中实现相同的功能?它们是否保证可以跨不同平台和编译器进行移植?
if (a != 0 && a->fun());
是的,对于“内置”类型是有保证的。然而,如果你为自己的类型重载了 && 或 ||,那么短路求值就不会被执行。因此,重载这些运算符被认为是一件坏事。