Re: [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 ]


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:

http://www.cgal.org/Manual/latest/doc_html/cgal_manual/contents.html

The "user manual" page of a given package:
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/AABB_tree/Chapter_main.html

Its respective reference page:
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/AABB_tree_ref/Chapter_introduction.html

The reference page of a given concept:
http://www.cgal.org/Manual/latest/doc_html/cgal_manual/AABB_tree_ref/Concept_AABBPrimitive.html#Cross_link_anchor_1726


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.


gael


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+ http://listengine.tuxfamily.org/