【发布时间】:2013-09-08 18:27:16
【问题描述】:
我在cppreference 上查看std::optional<T> 的API。我很好奇value_or 将如何工作。看看那里,似乎有两个重载:
template< class U >
constexpr T value_or( U&& value ) const&;
template< class U >
T value_or( U&& value ) &&;
函数声明后面的const& 和&& 是什么?将函数声明为 const 和声明为 const& 有什么区别?
【问题讨论】:
-
这实际上是编译器最近获得支持的 C++11 功能。
-
@chris 干杯。我知道对 *this 的右值引用,但由于它可能是最后要实现的功能之一,所以我根本没有费心去研究它们。
-
@chris 老实说,我一直在等待回答这个问题,不久前我在 c++ 入门中看到了答案,太糟糕了,我从来没有意识到这是一个骗局:(