Tay*_*ols 12 c++ templates perfect-forwarding c++14
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;
Run Code Online (Sandbox Code Playgroud)
这两个函数返回T&&,这(纠正我,如果我错了)折叠到
T&if T是左值引用T&&if T是rvalue引用,或者T不是引用对于T可能作为参考的任意类型,参考折叠总是导致forward<T>做同样的事情forward<T&&>吗?
如果是这样,有什么理由可以使用forward<T&&>吗?
T.C*_*.C. 16
参考折叠总是导致
forward<T>做同样的事情forward<T&&>吗?
是.
[我]有什么理由可以使用
forward<T&&>吗?
没有.
请注意,这假设forward视图中唯一的s是您显示的两个重载std::.