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



------------------------------------------------------------------------------
CenturyLink Cloud: The Leader in Enterprise Cloud Services.
Learn Why More Businesses Are Choosing CenturyLink Cloud For
Critical Workloads, Development Environments & Everything In Between.
Get a Quote or Start a Free Trial Today. 
http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk
_______________________________________________
Doxygen-users mailing list
Doxygen-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/doxygen-users

Reply via email to