26 lines
		
	
	
		
			729 B
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			729 B
		
	
	
	
		
			C++
		
	
	
	
	
	
| #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;
 | |
| }
 | 
