函数声明中的尾随 const 或 && [重复]

2023-12-28

我正在查看 APIstd::optional<T> on 参考参数 http://en.cppreference.com/w/cpp/utility/optional/value_or。我很好奇如何value_or会工作。看看那里,似乎有两个重载:

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

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

什么是const& and &&尾随函数声明?将函数声明为有什么区别const并将其声明为const&?


函数后面的 & 意味着this必须是左值,相反,双 & 符号意味着它必须是右值,const 只是表示它是不可修改的左值或右值

所以一个函数符合&仅适用于可修改的 lval 并且如果符合条件&&只适用于 rval。我猜一个const &&真的没有意义,因为const &可以绑定到临时变量,因此 const 限定符仅对 lval 执行任何操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

函数声明中的尾随 const 或 && [重复] 的相关文章

随机推荐