[Doxygen-users] Documenting specialized member functions
Brought to you by:
dimitri
From: Matthias K. <mk...@gm...> - 2014-01-21 12:00:13
|
Hi! I stumbled upon some difficulties in documenting specialized member functions in my project. For experiments with this issues I created some small files named foo.h containing the declaration of a template member function, foo_a.cpp and foo_b.cpp with specializations and main.cpp calling these functions: ### foo.h ### /// \file /// template declaration and definition. #include <iostream> class A; class B; /// provides the specialized method. /// further explanation... struct C { /// foos the object template< typename T > void foo(); }; ### foo_a.cpp ### /// \file /// implementation of foo< A > #include "foo.h" /// specialization for type A. /// further explanation... template<> void C::foo< A >() { std::cout << "A\n"; } /// \file /// implementation of foo< B > #include "foo.h" ### foo_b.cpp ### /// specialization for type B. /// further explanation... template<> void C::foo< B >() { std::cout << "B\n"; } ### main.cpp /// \file /// implementation of main #include "foo.h" /// main function int main() { C c; c.foo< A >(); c.foo< B >(); } This is my Doxyfile: JAVADOC_AUTOBRIEF = YES WARN_NO_PARAMDOC = YES GENERATE_LATEX = NO CLANG_ASSISTED_PARSING = NO HAVE_DOT = YES CALL_GRAPH = YES CALLER_GRAPH = YES Now, the documentation is generated without warnings or error, but the documentation for the specialized members look like template<> void C::foo() specialization for type B. ... and are missing the information about the concrete specialization. Is there any method to get doxygen to include the <B> in the generation description? Additionally, I'd like to produce a graph showing the calls to C::foo() from main(). Just setting CALL_GRAPH and CALLER_GRAPH does not do the trick here. The include dependency graphs are generated correctly. Regards, Matthias |