1namespace Eigen { 2 3/** \page TopicCustomizing_InheritingMatrix Inheriting from Matrix 4 5Before inheriting from Matrix, be really, I mean REALLY, sure that using 6EIGEN_MATRIX_PLUGIN is not what you really want (see previous section). 7If you just need to add few members to Matrix, this is the way to go. 8 9An example of when you actually need to inherit Matrix, is when you 10have several layers of heritage such as 11MyVerySpecificVector1, MyVerySpecificVector2 -> MyVector1 -> Matrix and 12MyVerySpecificVector3, MyVerySpecificVector4 -> MyVector2 -> Matrix. 13 14In order for your object to work within the %Eigen framework, you need to 15define a few members in your inherited class. 16 17Here is a minimalistic example: 18 19\include CustomizingEigen_Inheritance.cpp 20 21Output: \verbinclude CustomizingEigen_Inheritance.out 22 23This is the kind of error you can get if you don't provide those methods 24\verbatim 25error: no match for ‘operator=’ in ‘v = Eigen::operator*( 26const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1, 0, -0x000000001, 1> >::Scalar&, 27const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&) 28(((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&) 29((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType*)(& v))))’ 30\endverbatim 31 32*/ 33 34} 35