forward<T>和forward<T&&>一样吗?

Is forward<T> the same as forward<T&&>?

正在查看 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;

两个函数 return T&&,其中(如果我错了请纠正我)collapses

对于可能是引用的任意类型 T,引用折叠是否总是导致 forward<T> 执行与 forward<T&&> 相同的操作?

如果是这样,是否有任何理由使用 forward<T&&>

Does reference collapsing always cause forward<T> to do the same as forward<T&&>?

是的。

[I]s there any reason to use forward<T&&>?

没有

请注意,这是假设视图中仅有的 forward 是您在 std:: 中显示的两个重载。