#include #include class MyVectorType : public Eigen::VectorXd { public: MyVectorType(void):Eigen::VectorXd() {} // This constructor allows you to construct MyVectorType from Eigen expressions template MyVectorType(const Eigen::MatrixBase& other) : Eigen::VectorXd(other) { } // This method allows you to assign Eigen expressions to MyVectorType template MyVectorType& operator=(const Eigen::MatrixBase & 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; }