diff options
author | Gael Guennebaud <g.gael@free.fr> | 2016-08-30 11:10:08 +0200 |
---|---|---|
committer | Gael Guennebaud <g.gael@free.fr> | 2016-08-30 11:10:08 +0200 |
commit | 9c9e23858ee763381e56d1924253207a88ffb9c6 (patch) | |
tree | af197f6e5adce7c7fc7a5f15b16aab64fe54b097 /doc/CustomizingEigen_InheritingMatrix.dox | |
parent | cffe8bbff774fa46d874d26901f14ac14558bf19 (diff) |
Doc: split customizing-eigen page into sub-pages and re-structure a bit the different topics
Diffstat (limited to 'doc/CustomizingEigen_InheritingMatrix.dox')
-rw-r--r-- | doc/CustomizingEigen_InheritingMatrix.dox | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/doc/CustomizingEigen_InheritingMatrix.dox b/doc/CustomizingEigen_InheritingMatrix.dox new file mode 100644 index 000000000..b21e55433 --- /dev/null +++ b/doc/CustomizingEigen_InheritingMatrix.dox @@ -0,0 +1,34 @@ +namespace Eigen { + +/** \page TopicCustomizing_InheritingMatrix Inheriting from Matrix + +Before inheriting from Matrix, be really, I mean REALLY, sure that using +EIGEN_MATRIX_PLUGIN is not what you really want (see previous section). +If you just need to add few members to Matrix, this is the way to go. + +An example of when you actually need to inherit Matrix, is when you +have several layers of heritage such as +MyVerySpecificVector1, MyVerySpecificVector2 -> MyVector1 -> Matrix and +MyVerySpecificVector3, MyVerySpecificVector4 -> MyVector2 -> Matrix. + +In order for your object to work within the %Eigen framework, you need to +define a few members in your inherited class. + +Here is a minimalistic example: + +\include CustomizingEigen_Inheritance.cpp + +Output: \verbinclude CustomizingEigen_Inheritance.out + +This is the kind of error you can get if you don't provide those methods +\verbatim +error: no match for ‘operator=’ in ‘v = Eigen::operator*( +const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1, 0, -0x000000001, 1> >::Scalar&, +const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&) +(((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType&) +((const Eigen::MatrixBase<Eigen::Matrix<double, -0x000000001, 1> >::StorageBaseType*)(& v))))’ +\endverbatim + +*/ + +} |