Похоже, что Eigen::Ref<>
, введенный в Eigen 3.2, и std::reference_wrapper<>
введенные в C ++ 11 достигают очень похожих целей.
Очевидно, что Eigen::Ref<>
не вводит зависимость C ++ 11, как std :: reference_wrapper<> Да, но что еще нужно учитывать? (Для меня зависимость C ++ 11 не имеет значения.)
Вот ссылки: (так мета, LOL):
Они не охватывают одно и то же использование. std :: reference_wrapper обычно используется для хранения ссылок на объекты типа T в контейнеры (вместо использования указателей). Eigen :: Ref может обернуть любой плотный объект Eigen, похожий на T, или выделить собственную память для оценки выражений, на которые нельзя ссылаться. Обычно он используется в качестве типов аргументов не шаблонных функций или для объединения карт, матриц и подматриц.
Других решений пока нет …