ハムスターに飼われる院生のブログ

自分用メモが中心のブログです。

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の場所を指定する必要がある。