| #include <Eigen/Core> |
| #include <iostream> |
| |
| class MyVectorType : public Eigen::VectorXd |
| { |
| public: |
| MyVectorType(void):Eigen::VectorXd() {} |
| |
| // This constructor allows you to construct MyVectorType from Eigen expressions |
| template<typename OtherDerived> |
| MyVectorType(const Eigen::MatrixBase<OtherDerived>& other) |
| : Eigen::VectorXd(other) |
| { } |
| |
| // This method allows you to assign Eigen expressions to MyVectorType |
| template<typename OtherDerived> |
| MyVectorType& operator=(const Eigen::MatrixBase <OtherDerived>& other) |
| { |
| this->Eigen::VectorXd::operator=(other); |
| return *this; |
| } |
| }; |
| |
| int main() |
| { |
| MyVectorType v = MyVectorType::Ones(4); |
| v(2) += 10; |
| v = 2 * v; |
| std::cout << v.transpose() << std::endl; |
| } |