Is it possible to perfect forward a template template parameter
<p>I know how to perfect forward a parameter. However, I read from different sources (e.g. Effective Modern C++ Item 24 - Scott Meyers) that one can only perfect-forward when you have the exact template name, e.g.:</p>

<pre><code>template&lt;typename T&gt;
void foo(T&amp;&amp; param) { bar(std::forward&lt;T&gt;(param)); }
</code></pre>

<p>What I am looking for is if there is a way to perfect forward an template template parameter, e.g.:</p>

<pre><code>template&lt;template&lt;int, class TypeT&gt; class Vector, int Size, typename TypeT&gt;
void foo(Vector&lt;Size, TypeT&gt;&amp;&amp; param) { bar(std::forward&lt;Vector&lt;Size, TypeT&gt;&gt;(param)); }
</code></pre>

<p>When I compile the above, I get an error message: "You cannot bind an lvalue to an rvalue reference" (VC12), which suggest to me that the compiler does not recognize the &amp;&amp; as a "universal reference" but as an rvalue reference. This perfect fowarding could be useful to me because I can take advantage of the deduced TypeT and Size.</p>

<p>The question: is it possible to perfect forward template template parameters? If so, where is my syntax incorrect?</p>

<p>Thanks!</p>