Files
eigen/doc/examples/TemplateKeyword_flexible.cpp
2026-05-04 00:36:12 +00:00

22 lines
794 B
C++

// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0
#include <Eigen/Dense>
#include <iostream>
template <typename Derived1, typename Derived2>
void copyUpperTriangularPart(Eigen::MatrixBase<Derived1>& dst, const Eigen::MatrixBase<Derived2>& src) {
/* Note the 'template' keywords in the following line! */
dst.template triangularView<Eigen::Upper>() = src.template triangularView<Eigen::Upper>();
}
int main() {
Eigen::MatrixXi m1 = Eigen::MatrixXi::Ones(5, 5);
Eigen::MatrixXi m2 = Eigen::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;
}