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

[ Thread Index | Date Index | More Archives ]

Indeed, I looked at this issue a while ago and started to search for
an alternative to doxygen with no luck.

Projects that heavily uses c++ templates seem to rely on home made non
fully automatic documentation generation tools. See for instance the
documentation of CGAL:

The ToC:

The "user manual" page of a given package:

Its respective reference page:

The reference page of a given concept:

It is based on latex and homemade scripts. Not as convenient as
Doxygen and I don't know if you can include all members coming from
the base classes, but I can ask.


On Mon, Dec 19, 2011 at 2:22 PM, Benoit Jacob <jacob.benoit.1@xxxxxxxxx> wrote:
> 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+