Eigen вводил класс Ref < писать функции с Eigen-объектами в качестве параметров без использования ненужных временных рядов, когда писать функции шаблона не нужны. Здесь можно прочитать .
При дальнейшем поиске в Интернете я нашел несколько разных объявлений параметров с помощью класса Ref < > . В документации Eigen они используют const Eigen::Ref<const Eigen::MatrixXf>&
для параметра только для чтения в первом примере. Во втором примере 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>
Для полноты я перечислил все возможные комбинации использования константы и ссылки.