gpt4 book ai didi

c++ - [basic.execution] p5 句子 2 的意图

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:25 25 4
gpt4 key购买 nike

[basic.execution] p5 sentence 2状态:

If a language construct is defined to produce an implicit call of a function, a use of the language construct is considered to be an expression for the purposes of this definition.

然而,这句话的意图并不清楚。我最好的猜测是,它在这里是为了确保正确的顺序并确保在任何隐式函数调用完成之前不会破坏临时对象,但是,我看不到这会适用并改变某些代码的含义的情况。例如:

struct S { };
const S& f() { return {}; }

在这里,return 语句将被视为一个表达式,操作数 {} 也将被视为一个表达式,因此是 return 的子表达式 语句。这是句子的意图吗?这在其他什么地方适用并会产生有意义的影响?

最佳答案

关键短语是“在此定义的上下文中”,即 full-expression 的定义。

这只是说 完整表达式 的规则(例如临时生命周期)也将适用于您的整个 return 语句,即使它没有以其他方式枚举在构成完整表达式的事物列表中。

那是因为它涉及隐式函数调用(ctor 调用);如果没有,那么这一点就没有意义了。

它不会“改变”任何代码的含义。

关于c++ - [basic.execution] p5 句子 2 的意图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57451083/

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