title: C++ vector error C2036: 'int (*)[]' : unknown size
body: <p>I am getting 5 compile errors</p>
  
  <blockquote>
    <p>C2036: 'int (*)[]' : unknown size</p>
  </blockquote>
  
  <p>all from various places in the vector class.</p>
  
  <pre><code>#include &lt;gl\glew.h&gt;
  #include "Vector2.h"
  #include "Vector3.h"
  #include "WFObjModel.h"
  #include &lt;vector&gt;
  #include &lt;memory&gt;
  
  using namespace math;
  using std::vector;
  using std::string;
  using io::WFObjModel;
  using std::unique_ptr;
  
  class Mesh
  {
  private:
      GLuint textureID;
      unique_ptr&lt;vector&lt;Vector3&lt;float&gt;&gt;&gt; m_vertices;
      unique_ptr&lt;vector&lt;Vector3&lt;float&gt;&gt;&gt; m_normals;
      unique_ptr&lt;vector&lt;Vector2&lt;float&gt;&gt;&gt; m_textureCoordinates;
      unique_ptr&lt;vector&lt;int[]&gt;&gt; m_indices;
  public:
      Mesh(unique_ptr&lt;vector&lt;Vector3&lt;float&gt;&gt;&gt; vertices,
          unique_ptr&lt;vector&lt;Vector3&lt;float&gt;&gt;&gt; normals,
          unique_ptr&lt;vector&lt;Vector2&lt;float&gt;&gt;&gt; textureCoordinates,
          unique_ptr&lt;vector&lt;int[]&gt;&gt; indices);
  
      Mesh(Mesh&amp;&amp; other){
          m_vertices = std::move(other.m_vertices);
          m_normals = std::move(other.m_normals);
          m_textureCoordinates = std::move(other.m_textureCoordinates);
          m_indices = std::move(other.m_indices);
      }
  
      Mesh&amp; operator=(Mesh&amp;&amp; other)
      {
          m_vertices = std::move(other.m_vertices);
          m_normals = std::move(other.m_normals);
          m_textureCoordinates = std::move(other.m_textureCoordinates);
          m_indices = std::move(other.m_indices);
          return *this;
      }
  </code></pre>
  
  <p>I have looked at the other answers surrounding this issue but the accepted solutions don't seem to work/be applicable.</p>
  
  <p><a href="https://stackoverflow.com/questions/8077494/error-c2036-agent-const-unknown-size-in-vector-class">error C2036: &#39;Agent *const &#39; : unknown size in &#39;vector&#39; class</a>
  and 
  <a href="https://stackoverflow.com/questions/11306492/forward-declaration-error-when-defining-a-vector-type">Forward declaration error when defining a vector type?</a></p>
  
  <p>Seem to imply that the error is due to the compiler not having a full definition of the type being stored in the vector. I have an include for the header only template class being stored in the vector but I'm guessing it is something to do with the way that template classes are compiled?</p>
  
  <p>I cannot seem to add a forward declaration for the template <code>class Vector3&lt;float&gt;</code> without the compiler thinking I am trying to specialize the template.</p>