功能参数的破坏顺序是什么?

功能参数的破坏顺序是什么?

如果分别用参数a_1 ,..., a_n调用类型为T_1 ,..., T_n参数p_1 ,..., p_n的某些函数f ,其参数a_1 ,..., a_n及其正文引发异常,则以什么顺序完成或返回争论被破坏,为什么? 如有可能请提供参考标准。

编辑:实际上我想问一下函数“参数”,但是当TC和Columbo设法清除我的困惑时,我将会留下这个问题,并提出一个关于参数的新的单独的问题 。 看这个问题的意见区别。

采纳答案:

评估函数的参数的顺序不是由标准指定的。 从C ++ 11标准( 在线草案 ):

5.2.2函数调用

8 [ 注:后缀表达式和参数表达式的评估都是相对于彼此排序的。 参数表达式评估的所有副作用在函数输入之前进行排序(见1.9)。 -end note ]

因此,完全由一个实现来决定以何种顺序评估函数的参数。 这反过来又意味着论证的构建顺序也取决于实现。

合理的实施将以与其构造相反的顺序来破坏对象。

参考更多解答:功能参数的破坏顺序是什么?,转载请保留功能参数的破坏顺序是什么?

更多:language-lawyer