title: Empty nested tuples error
body: <pre><code>#include &lt;iostream&gt;
  #include &lt;tuple&gt;
  int main(){
  
  auto bt=std::make_tuple(std::tuple&lt;&gt;(),std::tuple&lt;std::tuple&lt;&gt;&gt;()); //Line 1
  auto bt2=std::make_tuple(std::tuple&lt;&gt;(),std::tuple&lt;&gt;());             //Line 2
  }
  </code></pre>
  
  <p>Why does Line 1 gives a compile error while Line 2 compiles fine? (tested in both Gcc&amp;Clang)</p>
  
  <p>Is there a possible workaround?</p>
  
  <p>error message for clang</p>
  
  <pre><code>/usr/include/c++/4.6/tuple:150:50: error: ambiguous conversion from derived class 'std::_Tuple_impl&lt;0, std::tuple&lt;&gt;,
        std::tuple&lt;std::tuple&lt;&gt; &gt; &gt;' to base class 'std::_Head_base&lt;0, std::tuple&lt;&gt;, true&gt;':
      struct std::_Tuple_impl&lt;0, class std::tuple&lt;&gt;, class std::tuple&lt;class std::tuple&lt;&gt; &gt; &gt; -&gt; _Tuple_impl&lt;0UL + 1, class std::tuple&lt;class std::tuple&lt;&gt; &gt; &gt; -&gt; _Head_base&lt;1UL, class std::tuple&lt;class std::tuple&lt;&gt; &gt;, std::is_empty&lt;class tuple&lt;class tuple&lt;&gt; &gt; &gt;::value&gt; -&gt; class std::tuple&lt;class std::tuple&lt;&gt; &gt; -&gt; _Tuple_impl&lt;0, class std::tuple&lt;&gt; &gt; -&gt; _Head_base&lt;0UL, class std::tuple&lt;&gt;, std::is_empty&lt;class tuple&lt;&gt; &gt;::value&gt;
      struct std::_Tuple_impl&lt;0, class std::tuple&lt;&gt;, class std::tuple&lt;class std::tuple&lt;&gt; &gt; &gt; -&gt; _Head_base&lt;0UL, class std::tuple&lt;&gt;, std::is_empty&lt;class tuple&lt;&gt; &gt;::value&gt;
        _Head&amp;            _M_head()       { return _Base::_M_head(); }
                                                   ^~~~~
  /usr/include/c++/4.6/tuple:173:33: note: in instantiation of member function 'std::_Tuple_impl&lt;0, std::tuple&lt;&gt;,
        std::tuple&lt;std::tuple&lt;&gt; &gt; &gt;::_M_head' requested here
          _Base(std::forward&lt;_Head&gt;(__in._M_head())) { }
                                         ^
  /usr/include/c++/4.6/tuple:334:9: note: in instantiation of member function 'std::_Tuple_impl&lt;0, std::tuple&lt;&gt;,
        std::tuple&lt;std::tuple&lt;&gt; &gt; &gt;::_Tuple_impl' requested here
        : _Inherited(static_cast&lt;_Inherited&amp;&amp;&gt;(__in)) { }
          ^
  gcc_bug.cpp:5:10: note: in instantiation of member function
        'std::tuple&lt;std::tuple&lt;&gt;, std::tuple&lt;std::tuple&lt;&gt; &gt; &gt;::tuple' requested here
          auto bt=std::make_tuple(std::tuple&lt;&gt;(),std::tuple&lt;std::tuple&lt;&gt;&gt;());
                  ^
  1 error generated.
  </code></pre>