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>
Для полноты я перечислил все возможные комбинации использования константы и ссылки.