title: Why can we not access elements of a tuple by index?
body: <pre><code>tuple &lt;int, string, int&gt; x=make_tuple(1, "anukul", 100);
  cout &lt;&lt; x[0];       //1
  cout &lt;&lt; get&lt;0&gt;(x);  //2
  </code></pre>
  
  <p>2 works. 1 does not.</p>
  
  <p>Why is it so?</p>
  
  <p>From Lounge C++ I learnt that it is probably because the compiler does not know what data type is stored at that index.
  But it did not make much sense to me as the compiler could just look up the declaration of that tuple and determine  the data type or do whatever else is done while accessing other data structures' elements by index.</p>