看着the documentation for std::forward
,
template< class T >
constexpr T&& forward( typename std::remove_reference<T>::type& t ) noexcept;
template< class T >
constexpr T&& forward( typename std::remove_reference<T>::type&& t ) noexcept;
两个函数均返回T&&
,{如果错误,请更正我)collapses
T&
,如果T
是左值引用T&&
,如果T
是右值引用,或者T
不是引用对于可能是引用的任意类型T
,引用折叠是否总是导致forward<T>
与forward<T&&>
相同?
如果是,是否有任何理由使用forward<T&&>
?
答案 0 :(得分:16)
引用折叠是否总是导致
forward<T>
与forward<T&&>
相同?
是的
[I]有任何理由使用
forward<T&&>
吗?
否。
请注意,这是假设视图中仅有的forward
是您在std::
中显示的两个重载。