blob: 48df64ee3613c2cc406516a0c3a4e05bfbd933a4 [file] [log] [blame]
Austin Schuh189376f2018-12-20 22:11:15 +11001#include <Eigen/Core>
2#include <iostream>
3
4class MyVectorType : public Eigen::VectorXd
5{
6public:
7 MyVectorType(void):Eigen::VectorXd() {}
8
9 // This constructor allows you to construct MyVectorType from Eigen expressions
10 template<typename OtherDerived>
11 MyVectorType(const Eigen::MatrixBase<OtherDerived>& other)
12 : Eigen::VectorXd(other)
13 { }
14
15 // This method allows you to assign Eigen expressions to MyVectorType
16 template<typename OtherDerived>
17 MyVectorType& operator=(const Eigen::MatrixBase <OtherDerived>& other)
18 {
19 this->Eigen::VectorXd::operator=(other);
20 return *this;
21 }
22};
23
24int main()
25{
26 MyVectorType v = MyVectorType::Ones(4);
27 v(2) += 10;
28 v = 2 * v;
29 std::cout << v.transpose() << std::endl;
30}