首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >常量转换一个临时的常量引用会导致未定义的行为吗?

常量转换一个临时的常量引用会导致未定义的行为吗?
EN

Stack Overflow用户
提问于 2014-05-18 05:40:30
回答 1查看 175关注 0票数 0

C++允许将临时绑定到常量引用,从而延长其生命周期。我的问题是:如果我通过常量强制转换来修改对象,这是不是未定义的行为?让我们假设我的新引用不会比原来的const-reference存活时间更长,因此它将始终指向内存中的有效对象。

如果它确实调用了未定义的行为,为什么呢?对象驻留在堆栈上,如果我可以读取它,为什么不能修改它?我理解为什么这可能是一个坏主意,因为临时文件很快就会被销毁,但是它是无效的C++吗?在我的测试中,我的程序在修改了临时。

EN

回答 1

Stack Overflow用户

发布于 2014-05-18 05:48:06

如果你想延长临时值的生命周期,使其成为非常量,只需将其绑定到一个右值引用即可。不要做不必要的造型。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23716340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档