【发布时间】:2015-04-02 04:30:23
【问题描述】:
到目前为止,我认为我们不能将临时右值传递给左值引用。但就在最近,我仔细研究了std::vector的填充构造函数:
explicit vector (size_type n, const value_type& val = value_type(),
const allocator_type& alloc = allocator_type());
const value_type& val 是参考左值,= value_type() 是匿名右值,据我所知。为什么有可能?临时右值不是马上就销毁了,所以引用就没有什么可指点了吗?
【问题讨论】:
-
“我以为……” / 但是 / “为什么会这样?” - 因为你想错了:关键是只有
const引用可以如此绑定,这样做会延长生命周期,直到相关范围结束。
标签: c++ vector pass-by-reference lvalue rvalue