Eigen は Ref<> クラスを導入して、テンプレート関数を記述したくない場合に、不必要な一時変数を使用せずに Eigen オブジェクトをパラメータとして関数を記述できるようにしました。これについてはこちらで読むことができます。
さらにインターネットを検索すると、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>
完全を期すために、const の使用と参照の可能な組み合わせをすべてリストしました。