*_*orm 5
在计算表达式时,函数参数在调用接受这些参数的函数之前被计算。
但是,在该规则之外,编译器可以选择评估顺序。看起来,在您的第一种情况下,它选择了在评估moveUniquePtr
之前评估someUniquePointer.get()
。因为一个子表达式修改了另一个子表达式中使用的状态,所以整个表达式的结果不是很好定义的。
将表达式拆分为顺序语句,如在第二种情况下,明确选择评估顺序,在这种情况下是正确的做法。
更多推荐
函数
*_*orm 5
在计算表达式时,函数参数在调用接受这些参数的函数之前被计算。
但是,在该规则之外,编译器可以选择评估顺序。看起来,在您的第一种情况下,它选择了在评估moveUniquePtr
之前评估someUniquePointer.get()
。因为一个子表达式修改了另一个子表达式中使用的状态,所以整个表达式的结果不是很好定义的。
将表达式拆分为顺序语句,如在第二种情况下,明确选择评估顺序,在这种情况下是正确的做法。
更多推荐
函数
发布评论