[eigen] Getting doxygen to include inherited members in class API docs (was: RowMajor vs ColMajor... )

[ Thread Index | Date Index | More lists.tuxfamily.org/eigen Archives ]


Hi,

In recent discussion it's been clear again that we need to get Doxygen
to include inherited members in class API docs, so that finding
documentation for a method doesn't require anymore knowing in what
base class it is defined.

In theory, this is as simple as setting INLINE_INHERITED_MEMB = YES in
the doxyfile.

In practice, I ran into 2 bugs:

1. Doxygen doesn't understand our inheritance patterns with the
internal::dense_xpr_base helper. For example, it sees that Matrix
inherits PlainObjectBase<Matrix> but can't unfold the template helper
that makes this inherit MatrixBase<Matrix>.

2. I tried worked around this by adding #ifdef EIGEN_PARSED_BY_DOXYGEN
a direct MatrixBase<Matrix> parent to Matrix, alongside the
PlainObjectBase parent, using multiple inheritance. Alas, Doxygen has
a bug making INLINE_INHERITED_MEMB only take effect for the first
parent in multiple inheritance.

I think the best course of action is to try to fix 1. in Doxygen
itself, by allowing to pass an explicit inheritance diagram to
Doxygen.

Or does anyone know a Doxygen replacement that can understand C++?
Maybe something based on LLVM or GCC?

Benoit



Mail converted by MHonArc 2.6.19+ http://listengine.tuxfamily.org/