2016-11-06 6 views
0

const C配列をとり、それをEigenマップにマップする関数を定義する必要があります。私は、コードが正常に動作関数定義からconstを削除した場合Eigen - const配列を動的ベクトルにマップ

double data[10] = {0.0}; 
typedef Eigen::Map<Eigen::VectorXd> MapVec; 

MapVec fun(const double* data) { 
    MapVec vec(data, n); 
    return vec; 
} 

:次のコードは私にエラーを与えます。しかし、constを間違いなく保管することは可能ですか?

ありがとうございました。

答えて

2

Mapのパラメータが非constタイプ(E。Eigen::VectorXd)である場合、それはそれは(あなたのケース*dataで)生のバッファを変更できることを前提としています。関数が修飾されたバッファconstを期待するので、それはconstであることを地図に伝えなければなりません。 typedef

typedef Eigen::Map<const Eigen::VectorXd> MapVec; 

と定義してください。

関連する問題