gpt4 book ai didi

c++ - 左值引用是否隐藏了未定义的行为?

转载 作者:行者123 更新时间:2023-11-30 01:49:26 25 4
gpt4 key购买 nike

我知道这是UB:

i = i++ + 1;

事实上,clang 3.4 编译器会在该行发出一条警告消息。

但在下面的代码中它不再这样做了:

int i{}; // in global scope
int &f() {return i;}

int main()
{
f() = i++ + 1;
}

这个UB也是吗?

最佳答案

是的,它也是未定义的行为,出于同样的原因:相对于 ii++ 中修改 i 是无序的作业。

关于c++ - 左值引用是否隐藏了未定义的行为?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29118295/

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