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