diff options
Diffstat (limited to 'eigen/doc/examples/TemplateKeyword_flexible.cpp')
-rw-r--r-- | eigen/doc/examples/TemplateKeyword_flexible.cpp | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/eigen/doc/examples/TemplateKeyword_flexible.cpp b/eigen/doc/examples/TemplateKeyword_flexible.cpp new file mode 100644 index 0000000..9d85292 --- /dev/null +++ b/eigen/doc/examples/TemplateKeyword_flexible.cpp @@ -0,0 +1,22 @@ +#include <Eigen/Dense> +#include <iostream> + +using namespace Eigen; + +template <typename Derived1, typename Derived2> +void copyUpperTriangularPart(MatrixBase<Derived1>& dst, const MatrixBase<Derived2>& src) +{ + /* Note the 'template' keywords in the following line! */ + dst.template triangularView<Upper>() = src.template triangularView<Upper>(); +} + +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; +} |