std :: optional <t> :: value_or

时间:2016-07-21 19:49:07

标签: c++ c++11 c++14 c++17

this page所示,std::optional<T>::value_or的右值反对限定版本未标记为constexpr

template< class U >
constexpr T value_or( U&& default_value ) const&;

template< class U >
T value_or( U&& default_value ) &&;

这背后的原因是什么?是因为值的移动可以修改optional对象吗?

但如果我们将&&版本也设为constexpr,我们现在写的不是很好:

constexpr int x = std::optional<int>(123).value_or(456);

0 个答案:

没有答案