当然不会出错。编译器会保证效果上跟顺序执行一样。
【 在 hyperLee (老李) 的大作中提到: 】
: 标 题: Re: 关于copy elision和move ctor
: 发信站: 水木社区 (Sat Jul 18 12:25:47 2020), 站内
:
: 那我要是在对象的ctor里边干点与执行顺序相关的事,岂不是分分钟出错?
:
: 然而事实上这么做根本不会出错。这是得基本遵守的规则。
:
: 反正要触发nrvo,最好把返回对象定义在第一行,十分稳妥。
:
: 上面allego的代码,传参都是编译期常量,编译期一优化,分支就变得编译器可预测了。比如把true false改成键盘输入,if里边的nrvo我觉得是触发不了的。
:
: 【 在 here080 @ [CPlusPlus] 的大作中提到: 】
: :
: : 你代码写的顺序不一定是程序执行的顺序。
: : 变量是否写在第一行根本就没关系。
: : 只有很老的C编译器才会有这个。
: : 【 在 hyperLee (老李) 的大作中提到: 】
:
: --
:
: ※ 来源:·水木社区
http://www.newsmth.net·[FROM: 120.244.224.*]
--
FROM 76.126.252.*