| #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; |
| } |