[Doxygen-users] Slight parsing bug?
Brought to you by:
dimitri
From: Andrew S. <AS...@al...> - 2001-05-22 11:53:06
|
Hi, I think I've found a bug in the doxygen parser relating to inner classes, but aren't entirely sure. The following code fails to document correctly: #define API_SPEC // Outer class class API_SPEC A { public: A(); ~A(); // Forward declaration class B; }; // Inner class class API_SPEC A::B { public: B(); ~B(); }; /*! \class A * * Documentation for outer class A. */ /*! \brief Constructor. * * Constructor for outer class A. */ A::A() { return; } /*! \brief Destructor. * * Destructor for outer class A. */ A::~A() { return; } /*! \class A::B * * Documentation for inner class A::B. */ /*! \brief Constructor. * * Constructor for inner class A::B. */ A::B::B() { return; } /*! \brief Destructor. * * Destructor for inner class A::B. */ A::B::~B() { return; } This elicits the following warnings: example.cc:43: Warning: no matching class member found for A::B::B() example.cc:48: Warning: no matching class member found for A::B::~B() example.cc:17: Warning: Member B of class A is not documented. example.cc:18: Warning: Member ~B of class A is not documented. It would appear that my use of the API_SPEC (which under Windows is often #define'd to be __declspec(export)) confuses the parser somehow. It works fine with the outer class, but the inner class fails to document unless I remove the use of the API_SPEC define when declaring the class. If anyone could shed some light on this issue (and a fix or workaround) it would be much appreciated. Cheers, - Andrew |