title: Eigen types typedef failing with C4430
body: <p>In an academic project I'm trying to setup a simple physics engine.
  I am using Eigen library for vector/matrixes calculation.
  I'd like to stay as much independent as I can from library/design choices I'm making, to ease future changes, so I'm using typedefs for the Eigen types.</p>
  
  <p>File PhysicsEngine.h</p>
  
  <pre><code>#pragma once
  
  #include &lt;Eigen/Core&gt;
  #include &lt;Eigen/Geometry&gt;
  #include "RigidBody.h"
  
  ... other inclusions ...
  
  namespace PhysicsEngine
  {
      typedef float real;
      typedef Eigen::Vector3f vector3;
      typedef Eigen::Quaternionf quaternion;
      typedef Eigen::Matrix4f matrix4;
      typedef Eigen::Matrix3f matrix3;
  
      ...
  </code></pre>
  
  <p>1) Is that a good design choice or am I misunderstanding what my teacher told us?</p>
  
  <p>Including the file above, in RigidBody.h, and trying to use those typedefs:</p>
  
  <pre><code>#pragma once
  
  #include "PhysicsEngine.h"
  
  namespace PhysicsEngine
  {
      class RigidBody
      {
      public:
      vector3 position;               // &lt;- error C4430
      real inverseMass;               // &lt;- error C4430
      vector3 velocity;               // &lt;- error C4430
      vector3 netForce;               // &lt;- error C4430
  
      quaternion orientation;         // &lt;- error C4430
      matrix3 inverseInertiaTensor;   // &lt;- error C4430
      vector3 rotation;               // &lt;- error C4430
      vector3 netTorque;              // &lt;- error C4430
  
      matrix4 transformationMatrix;   // &lt;- error C4430
      ...
  </code></pre>
  
  <p>I get:</p>
  
  <blockquote>
    <p>error C4430: missing type specifier - int assumed. Note: C++ does not support default-int.</p>
  </blockquote>
  
  <p>2) What am I doing wrong here?</p>
  
  <p>Thanks in advance.</p>