1#include <Eigen/Core> 2#include <iostream> 3 4class MyVectorType : public Eigen::VectorXd 5{ 6public: 7 MyVectorType(void):Eigen::VectorXd() {} 8 9 // This constructor allows you to construct MyVectorType from Eigen expressions 10 template<typename OtherDerived> 11 MyVectorType(const Eigen::MatrixBase<OtherDerived>& other) 12 : Eigen::VectorXd(other) 13 { } 14 15 // This method allows you to assign Eigen expressions to MyVectorType 16 template<typename OtherDerived> 17 MyVectorType& operator=(const Eigen::MatrixBase <OtherDerived>& other) 18 { 19 this->Eigen::VectorXd::operator=(other); 20 return *this; 21 } 22}; 23 24int main() 25{ 26 MyVectorType v = MyVectorType::Ones(4); 27 v(2) += 10; 28 v = 2 * v; 29 std::cout << v.transpose() << std::endl; 30} 31