gpt4 book ai didi

c++ - 为什么 `f().items()` 在带初始值设定项示例的基于范围的 for 语句中是错误的

转载 作者:搜寻专家 更新时间:2023-10-31 01:30:36 25 4
gpt4 key购买 nike

<分区>

his report on the Fall 2017 standards meeting , Herb Sutter 有以下示例说明带初始化器的基于范围的 for 语句正在简化什么:

{
T thing = f();
for (auto& x : thing.items()) {
// Note: “for (auto& x : f().items())” is WRONG
mutate(&x);
log(x);
}
}

为什么 for (auto& x : f().items()) 是错误的?也就是说,什么时候 f().items() 会产生未定义的行为,但 T thing = f(); ... thing.items() 不屈服吗?

(这个问题 might be considered a duplicate 但是 the answer 只是通过写问题而不是通过正常搜索来揭示的,所以我认为它值得包含在 StackOverflow 中。)

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