学術プロジェクトで、単純な物理エンジンをセットアップしようとしています。ベクトル/行列の計算に Eigen ライブラリを使用しています。将来の変更を容易にするために、私が行っているライブラリ/デザインの選択からできるだけ独立したいので、Eigen 型に typedef を使用しています。
ファイル PhysicsEngine.h
#pragma once
#include <Eigen/Core>
#include <Eigen/Geometry>
#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;
...
1) それは良いデザインの選択ですか、それとも先生が私たちに言ったことを誤解していますか?
上記のファイルを RigidBody.h に含め、これらの typedef を使用しようとしています。
#pragma once
#include "PhysicsEngine.h"
namespace PhysicsEngine
{
class RigidBody
{
public:
vector3 position; // <- error C4430
real inverseMass; // <- error C4430
vector3 velocity; // <- error C4430
vector3 netForce; // <- error C4430
quaternion orientation; // <- error C4430
matrix3 inverseInertiaTensor; // <- error C4430
vector3 rotation; // <- error C4430
vector3 netTorque; // <- error C4430
matrix4 transformationMatrix; // <- error C4430
...
私は得る:
エラー C4430: 型指定子がありません - int と見なされます。注: C++ は default-int をサポートしていません。
2) ここで何が間違っていますか?
前もって感謝します。