I'm using Doxygen 1.8.6 (default repository version of the current Ubuntu LTS release) and encounter two issues while trying to move documentation to structural commands (mainly \fn for member functions).
The first problem occurs when a class method with different signatures is declared const: /** * \file test.hpp */ /** * \fn template <T, U> void Foo::bar(T a, U b) const * \brief two args * * \fn template <T> void Foo::bar(T a) const * \brief one arg */ /** * \brief Foobar */ class Foo { public: template <typename T, typename U> void bar(T a, U b) const {} template <typename T> void bar(T a) const {} }; which fails to document with two warnings, one of which is (abbreviated): no matching class member found for template< T > void Foo::bar(T a) const Possible candidates: 'template < T > void Foo::bar(T a) const Removing the four occurences of const in the source file "fixes" the warning, as does removing one of the signatures, neither of which I can do. Using \overload in any combination doesn't help, same with switching "T" for "typename T" and similar in pretty much any combination. Not sure what the apostrophe in the warning is about. The other example is about mixing overloading and default parameters: /** * \file test.hpp */ /** * \fn template <T, U> void Foo::bar(T a, U b, int c=1) * \brief three args * * \fn template <T> void Foo::bar(T a) * \brief one arg */ /** * \brief Foobar */ class Foo { public: template <typename T, typename U> void bar(T a, U b, int c=1) {} template <typename T> void bar(T a) {} }; which fails to document with one warning (again abbreviated to the most confusing part): no matching class member found for template< T, U > void Foo::bar(T a, U b, int c=1) Possible candidates: 'template < T, U > void Foo::bar(T a, U b, int c=1) The one-argument member function gets documented, the three-argument one doesn't. Removing the default parameter for the third argument "fixes" the problem again, and interestingly so does removing the one-argument member function (then in the resulting HTML, both \fn commands are attached to the three-argument version). Also no success fiddling with \overload and template keywords here. So... any way to make this work properly, or should I go bother the package maintainers to start building with clang parsing support? cheers Donjan Rodic ------------------------------------------------------------------------------ _______________________________________________ Doxygen-users mailing list Doxygen-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/doxygen-users