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