title: "Expression must be a pointer to a complete object type"
body: <p>I've tried browsing many of the other topics out there on this, but none of them seem to fix my specific problem.</p>
  
  <p>I have a 3X3 matrix class and have the following code to allow the user to access the matrix's rows:</p>
  
  <pre><code>V3&amp; M33::operator[](int i) 
  {
  
    return rows[i]; // rows is a Vector3 array
  
  }
  </code></pre>
  
  <p>Yet in my vector class when I try to do this:</p>
  
  <pre><code>void rotateAboutArbitraryAxis(int axis, float degrees)
  {
      if(axis == 0)
      {
          M33 m();
          V3 row0(1.0f, 0.0f, 0.0f);
          V3 row1(0.0f, cos(degrees), -sin(degrees));
          V3 row2(0.0f, sin(degrees), cos(degrees));
  
  
          m[0] = row0; //error
          m[1] = row1; //error
          m[2] = row2; //error
  
      }
  
  }
  </code></pre>
  
  <p>There is an error flagged in the three marked places above.</p>
  
  <p>The intellisense tells me "Expression must be a pointer to a complete object type"
  while the actual build-error is "subscript requires array or pointer type."</p>
  
  <p>Does anyone know why this is? I can provide more information if needed.</p>
  
  <p>Thanks!</p>