blob: 26e1e3c4236563b39d8462fbb89052873f389082 [file] [log] [blame]
#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;
}