title: std::array incomplete type error with an array of std::tuple
body: <p>I am getting some strange behaviour with a C++11 <code>std::array</code>. When I try to compile with <code>std::array&lt;std::tuple&lt;int, float&gt;, 6&gt; myTuples;</code> as a member variable, I get these errors:</p>
  
  <p><code>mingw32\4.7.2\include\c++\array:-1: In instantiation of 'struct std::array&lt;std::tuple&lt;int, float&gt;, 6u&gt;':</code><br>
  <code>mingw32\4.7.2\include\c++\array:77: error: 'std::array&lt;_Tp, _Nm&gt;::_M_instance' has incomplete type</code></p>
  
  <p>I'm not sure if any of this changes anything but the class it is in is a template class derived from another template class. The template parameter is an <code>unsigned int</code> an determines the size of a protected <code>std::array</code> in the base class, which I reference in the derived class <code>using Base&lt;param&gt;::m_array;</code>. The derived class has various <code>glm::vec3/dmat4/quat</code> types, and uses OpenGL fixed function <code>glBegin(GL_QUADS);</code> stuff. I'm using SDL-1.2.15 to create an OpenGL context. I think most of that was irrelevant, but maybe not. I could paste code, but everything is interconnected, so it can only be compiled as a whole (which distributed between sources is around a thousand or so lines).</p>
  
  <p>However, when I include this same line in <a href="http://ideone.com/O7TCMe" rel="noreferrer" title="Ideone.com example">this ideone example</a>, in very similar circumstances, it compiles perfectly fine. I checked that it wasn't just my compiler (MinGW g++ version 4.7.2) by compiling the same on my compiler with command line <code>g++ -Wall -std=c++11</code></p>
  
  <p>Does anyone know why I might get these errors? I had some problems before with the compiler crashing while parsing <code>std::array</code> assignment (using <code>array = {{a,b,c}};</code> for a default parameter), but this time its a compiler error not crash.</p>