[Doxygen-users] Copydoc and inheritance with overloaded functions with typedef templated parameters
Brought to you by:
dimitri
From: James B. <ben...@gm...> - 2012-08-01 18:47:09
|
Hi Doxygen-users! I'm a relatively new doxygen user, so although this seems like a Doxygen bug to me, I wanted to check to see if anyone had seen this kind of behavior before, and either knows of a work-around solution, or can tell me how I'm being dumb. This is with doxygen 1.8.1.2 I've found that doxygen has problems finding the correct function when functions are overloaded with parameters that are typedefs of templated parameters. This affects inheritance (when a function says "Implements SuperClass" in the documentation links to the superclass function), and with copydoc. Here's an example: template <class ItemType> class TemplatedClass{}; class SuperClass{ public: typedef TemplatedClass<float> SingleClass; typedef TemplatedClass<double> DoubleClass; /*! \brief FLOAT */ virtual void Foo(SingleClass x) = 0; /*! \brief DOUBLE */ virtual void Foo(DoubleClass x) = 0; }; class SubClass : public SuperClass{ public: /*! @copydoc SuperClass::Foo(SingleClass) */ virtual void Foo(SingleClass x) { } /*! @copydoc SuperClass::Foo(DoubleClass) */ virtual void Foo(DoubleClass x) { } }; Now if I go into my documentation, the documentation for "SuperClass" reads: virtual void Foo (SingleClass x)=0 FLOAT. virtual void Foo (DoubleClass x)=0 DOUBLE. but the documentation for "SubClass" reads: virtual void Foo (SingleClass x) FLOAT. virtual void Foo (DoubleClass x) FLOAT. so copydoc is finding the wrong function. Like I mentioned before, doxygen's inheritance finder also finds the wrong class here. Is there something I can do to fix this? Or is this just a doxygen bug? Thanks! James Benze ~ |