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