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