#include <StormEigen/Core>
#include <iostream>

class MyVectorType : public StormEigen::VectorXd
{
public:
    MyVectorType(void):StormEigen::VectorXd() {}

    // This constructor allows you to construct MyVectorType from Eigen expressions
    template<typename OtherDerived>
    MyVectorType(const StormEigen::MatrixBase<OtherDerived>& other)
        : StormEigen::VectorXd(other)
    { }

    // This method allows you to assign Eigen expressions to MyVectorType
    template<typename OtherDerived>
    MyVectorType& operator=(const StormEigen::MatrixBase <OtherDerived>& other)
    {
        this->StormEigen::VectorXd::operator=(other);
        return *this;
    }
};

int main()
{
  MyVectorType v = MyVectorType::Ones(4);
  v(2) += 10;
  v = 2 * v;
  std::cout << v.transpose() << std::endl;
}