title: What does T& mean for some template argument T?
body: <p>For example</p>
  
  <pre><code>template&lt;class T&gt;
  struct Ref
  {
      using type = T&amp;;
  };
  </code></pre>
  
  <p>Is <code>Ref&lt;T&gt;::type</code> the same as <code>std::add_lvalue_reference&lt;T&gt;::type</code> for all possible template arguments? E.g. <code>int</code>, <code>int&amp;</code>, and <code>int&amp;&amp;</code>?</p>
  
  <p>I just read the source code for <code>std::add_lvalue_reference&lt;T&gt;</code>. Quite sure they are equivalent.<br> If they are, we can save some space by simply writing <code>T&amp;</code> instead.</p>