// SPDX-FileCopyrightText: The Eigen Authors
// SPDX-License-Identifier: MPL-2.0

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