title: Why ={} initialization doesn't work for tuple?
body: <p>To me a <code>pair</code> is just special case of a <code>tuple</code>, but following surprises me:</p>
  
  <pre><code>pair&lt;int, int&gt; p1(1, 2);   // ok
  tuple&lt;int, int&gt; t1(1, 2);  // ok
  
  pair&lt;int, int&gt; p2={1, 2};  // ok
  tuple&lt;int, int&gt; t2={1, 2}; // compile error
  </code></pre>
  
  <p>Why there is difference when we use <code>{}</code> to initialize <code>tuple</code>?</p>
  
  <p>I tried even <code>g++ -std=c++1y</code> but still has error:</p>
  
  <pre><code>a.cc: In function 'int main()':
  a.cc:9:29: error: converting to 'std::tuple&lt;int, int&gt;' from initializer list would use explicit constructor 'constexpr std::tuple&lt;_T1, _T2&gt;::tuple(_U1&amp;&amp;, _U2&amp;&amp;) [with _U1 = int; _U2 = int; &lt;template-parameter-2-3&gt; = void; _T1 = int; _T2 = int]'
       tuple&lt;int, int&gt; t2={1, 2};
                               ^
  </code></pre>