我想检查一下我对此事的理解和结论。
在 IRC 上,有人问:
绑定到临时对象
const_cast
的引用是否可以接受?const
翻译:他有一个 ref-to-const 绑定到一个临时的,他想抛弃它的const
-ness 来修改它。
我的回答是我之前问过一个类似的问题,其中的共识似乎是临时工本身并不是天生const
的,因此您可以摆脱const
对他们的引用的-ness,并通过结果修改它们. 而且,只要那个原始的 ref-to-const
仍然存在,这不会影响临时的生命周期。
那是:
int main()
{
const int& x = int(3);
int& y = const_cast<int&>(x);
y = 4;
cout << x;
}
// Output: 4
// ^ Legal and safe
我对吗?
(当然,这样的代码是否真的可取完全是另一回事!)