C++允许将临时绑定到常量引用,从而延长其生命周期。我的问题是:如果我通过常量强制转换来修改对象,这是不是未定义的行为?让我们假设我的新引用不会比原来的const-reference存活时间更长,因此它将始终指向内存中的有效对象。
如果它确实调用了未定义的行为,为什么呢?对象驻留在堆栈上,如果我可以读取它,为什么不能修改它?我理解为什么这可能是一个坏主意,因为临时文件很快就会被销毁,但是它是无效的C++吗?在我的测试中,我的程序在修改了临时。
发布于 2014-05-18 05:48:06
如果你想延长临时值的生命周期,使其成为非常量,只需将其绑定到一个右值引用即可。不要做不必要的造型。
https://stackoverflow.com/questions/23716340
复制相似问题