Я обнаружил следующее поведение с Eigen :: Ref:
#include <iostream>
#include <Eigen/Dense>
int main()
{
Eigen::VectorXf a = Eigen::Vector2f{1,2};
Eigen::Ref<Eigen::VectorXf> ref{a};
std::cout << a.transpose() << "\n"; // prints: 1, 2
std::cout << ref.transpose() << "\n"; // prints: 1, 2
a = Eigen::Vector3f{3,4,5};
std::cout << a.transpose() << "\n"; // prints: 3, 4, 5
std::cout << ref.transpose() << "\n"; // prints: 3, 4
return 0;
}
Насколько я могу судить, аннулирование ссылок на Eigen не задокументировано. Когда это происходит?