gpt4 book ai didi

c++ - C++ 函数参数中的求值顺序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:38:31 24 4
gpt4 key购买 nike

如果我们有三个像这样组成的函数(foo、bar 和 baz)...

foo(bar(), baz())

C++ 标准是否保证 bar 将在 baz 之前计算?

最佳答案

不,没有这样的保证。根据 C++ 标准,它是未指定的。

Bjarne Stroustrup 还在“The C++ Programming Language”第 3 版第 6.2.2 节中明确说明了这一点,并给出了一些推理:

Better code can be generated in the absence of restrictions on expression evaluation order

尽管从技术上讲,这是指同一节的较早部分,该节说表达式的各个部分的评估顺序也是未指定的,即

int x = f(2) + g(3);   // unspecified whether f() or g() is called first

关于c++ - C++ 函数参数中的求值顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56668161/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com