summaryrefslogtreecommitdiffhomepage
path: root/eigen/doc/examples/TemplateKeyword_flexible.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'eigen/doc/examples/TemplateKeyword_flexible.cpp')
-rw-r--r--eigen/doc/examples/TemplateKeyword_flexible.cpp22
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;
+}