| #include <Eigen/Core> | |
| USING_PART_OF_NAMESPACE_EIGEN | |
| using namespace std; | |
| template<typename Scalar, typename Derived> | |
| void foo(const MatrixBase<Scalar, Derived>& m) | |
| { | |
| cout << "Here's m:" << endl << m << endl; | |
| } | |
| template<typename Scalar, typename Derived> | |
| Eigen::ScalarMultiple<Derived> | |
| twice(const MatrixBase<Scalar, Derived>& m) | |
| { | |
| return 2 * m; | |
| } | |
| int main(int, char**) | |
| { | |
| Matrix2d m = Matrix2d::random(); | |
| foo(m); | |
| foo(twice(m)); | |
| return 0; | |
| } |