blob: c56188dae1336db8712053b8a490184f9f7d7d06 [file]
// 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;
}