#include #include using namespace Eigen; template void copyUpperTriangularPart(MatrixBase& dst, const MatrixBase& src) { /* Note the 'template' keywords in the following line! */ dst.template triangularView() = src.template triangularView(); } int main() { MatrixXi m1 = MatrixXi::Ones(5,5); MatrixXi m2 = MatrixXi::Random(4,4); std::cout << "m2 before copy:" << std::endl; std::cout << m2 << std::endl << std::endl; copyUpperTriangularPart(m2, m1.topLeftCorner(4,4)); std::cout << "m2 after copy:" << std::endl; std::cout << m2 << std::endl << std::endl; }