title: template parameter packs access Nth type and Nth element
body: <p>The following paper is the first proposal I found for template parameter packs.</p>
  
  <p><a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1603.pdf">http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2004/n1603.pdf</a></p>
  
  <p>At page 16, it talks about introducing two new operators [] and &lt;> for accessing parameter pack elements and parameter pack types. </p>
  
  <p><code>The suggested syntax for such an operator involves two new operators: .[] to access values and .&lt;&gt; to access types. For instance:</code></p>
  
  <pre><code>template&lt;int N, typename Tuple&gt; struct tuple_element;
  template&lt;int N, ... Elements&gt;
  struct tuple_element&lt;tuple&lt;Elements...&gt; &gt;
  {
      typedef Elements.&lt;N&gt; type;
  };
  
  template&lt;int N, ... Elements&gt;
  Elements.&lt;N&gt;&amp; get(tuple&lt;Elements...&gt;&amp; t)
  { return t.[N]; }
  
  template&lt;int N, ... Elements&gt;
  const Elements.&lt;N&gt;&amp; get(const tuple&lt;Elements...&gt;&amp; t)
  { return t.[N]; }
  </code></pre>
  
  <p>So where are these operators? If there is none, what is their replacement?</p>