Eigen hat die Klasse Ref <> eingeführt, um Funktionen mit Eigen-Objekten als Parameter zu schreiben, ohne unnötige Provisorien zu verwenden, wenn das Schreiben von Template-Funktionen unerwünscht ist. Man kann darüber lesen here.Korrekte Verwendung der Eigenschaft Eigen :: Ref <>
Bei der weiteren Suche im Internet habe ich mehrere verschiedene Parameterdeklarationen mit der Ref <> Klasse gefunden. In der Eigendokumentation verwenden sie const Eigen::Ref<const Eigen::MatrixXf>&
für einen schreibgeschützten Parameter im ersten Beispiel. Im zweiten Beispiel wird Eigen::Ref<Eigen::MatrixXd>
für Lese- und Schreibparameter eingeführt, ABER hier wird const Eigen::Ref<const Eigen::MatrixXd>
für schreibgeschützte Parameter verwendet (keine Referenz). Also meine Frage ist:
Was ist der Unterschied zwischen den folgenden Erklärungen und wann verwende ich die `
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>
Der Vollständigkeit halber aufgeführt ich jede mögliche Kombination von const-Nutzung und der Referenz.
Ich würde 'const Eigen :: Ref' für schreibgeschützte Parameter und 'Eigen :: Ref ' für Lese- und Schreibparameter verwenden. Aber ich bin mir nicht sicher über die Referenz ('&'). –