Eigen線形代数ライブラリを使用しています。クラスのコンストラクターに固有ベクトルを割り当てようとして苦労し、それらのベクトルの要素を呼び出しました。
例えば、
#include <Eigen/Dense>
using Eigen::VectorXd;
#include <memory>
using std::unique_ptr;
class Cl
{
public:
unique_ptr<VectorXd> v;
Cl(const int n);
~Cl(void);
}
Cl::Cl(const int n)
{
auto v= unique_ptr<VectorXd>(new VectorXd(n));
}
Cl::~Cl(void)
{
v= nullptr;
}
main(void)
{
Cl cl(10);
/* call an element of v how? */
}
たとえば、「cl.v(2)」を使用すると、コンパイラ エラーが発生します (clang++ を使用しています)。
error: type 'unique_ptr<VectorXd>' (aka 'unique_ptr<Matrix<double, Dynamic, 1> >') does
not provide a call operator
「cl.(*v)(2)」を使用している間
error: expected unqualified-id
cout << cl.(*v)(2) << endl;
私は c++ を初めて使用するので、ここで非常に基本的なものが欠落している可能性があります。