EigenのVectorXiをメンバ変数にする
C++の話。
EigenのVectorをメンバ変数とする場合に
一手間必要だったためメモ。
EIGEN_MAKE_ALIGNED_OPERATOR_NEW
の一文をpublicに入れる必要があった。
MyClassというクラスにて、VectorXi をメンバ変数として使用する場合の例を以下に示す。
まずはヘッダファイル(MyClass.h)
#include <Eigen/Sparse> using namespace std; using namespace Eigen; class MyClass { public: EIGEN_MAKE_ALIGNED_OPERATOR_NEW MyClass(); VectorXi vec; };
コンストラクタでresizeするようにした場合の例(MyClass.cpp)。
#include "MyClass.h" using namespace std; MyClass::MyClass() { vec.resize(10); }
なお、初めてEigenを使用する際にはソリューションエクスプローラーのC/C++から、追加のインクルードディレクトリとしてEigenの場所を指定する必要がある。