EigenはRef <クラスを導入して、Eigenオブジェクトをパラメータとして関数を書き込んでいますが、テンプレート関数を書くときに不要な一時関数を使用する必要はありません。 1人はこれについて読むことができますhere。Eigen :: Ref <>クラスの正しい使い方
さらにインターネットを検索すると、Ref <>クラスを使用していくつかの異なる宣言が見つかりました。 Eigenのドキュメントでは、最初の例では読み取り専用パラメータとしてconst Eigen::Ref<const Eigen::MatrixXf>&
を使用しています。 2番目の例では、Eigen::Ref<Eigen::MatrixXd>
が読み取りと書き込みのパラメータとして導入されていますが、ここではconst Eigen::Ref<const Eigen::MatrixXd>
が読み取り専用パラメータ(参照なし)に使用されています。だから私の質問は次のとおりです。
次の宣言とするとき、私はどの `
const Eigen::Ref<const Eigen::MatrixXd>&
const Eigen::Ref<const Eigen::MatrixXd>
const Eigen::Ref<Eigen::MatrixXd>&
const Eigen::Ref<Eigen::MatrixXd>
Eigen::Ref<const Eigen::MatrixXd>&
使用しないの違いは何ですか?は、
Eigen::Ref<const Eigen::MatrixXd>
完全を期すためEigen::Ref<Eigen::MatrixXd>&
Eigen::Ref<Eigen::MatrixXd>
IはCONST使用基準の全ての可能な組み合わせが記載されています。
個人的には、読み込み専用のパラメータでは 'const Eigen :: Ref'を、読み書き可能なパラメータでは 'Eigen :: Ref 'を使用します。しかし、私は参照( '&')についてはわかりません。 –