Is forward<T> the same as forward<T&&>? : <p>Looking at <a href="https://en.cppreference.com/w/cpp/utility/forward" rel="noreferrer">the documentation for <code>std::forward</code></a>,</p>

<pre><code>template&lt; class T &gt;
constexpr T&amp;&amp; forward( typename std::remove_reference&lt;T&gt;::type&amp; t ) noexcept;
template&lt; class T &gt;
constexpr T&amp;&amp; forward( typename std::remove_reference&lt;T&gt;::type&amp;&amp; t ) noexcept;
</code></pre>

<p>Both functions return <code>T&amp;&amp;</code>, which (correct me if I'm wrong) <a href="https://stackoverflow.com/questions/41360880/why-an-rvalue-reference-is-turned-into-lvalue-reference-by-a-universal-reference">collapses</a> to</p>

<ul>
<li><code>T&amp;</code> if <code>T</code> is an lvalue reference</li>
<li><code>T&amp;&amp;</code> if <code>T</code> is an rvalue reference, or if <code>T</code> is not a reference</li>
</ul>

<p>For an arbitrary type <code>T</code> which may be a reference, does reference collapsing always cause <code>forward&lt;T&gt;</code> to do the same as <code>forward&lt;T&amp;&amp;&gt;</code>?</p>

<p>If so, is there any reason to use <code>forward&lt;T&amp;&amp;&gt;</code>?</p>
