Hi,
I often use the C++ technique of a "private implementation pointer", i.e. the
header for a class contains a pointer to a private class that actually
implements the functionality of the class. This removes a lot of implementation
specific junk from the public header file and reduces unnecessary
re-compilation.
Even though this implementation class is defined as a private nested class
within the main class, Doxygen generates documentation for it if EXTRACT_ALL is
set to YES and EXTRACT_PRIVATE is set to no. Is this a bug?
For example:
In MyObj.h:
-------------------------------------------
class MyObj {
private:
struct Imp;
Imp* imp;
public:
MyObj();
~MyObj();
void memberFunc();
};
-------------------------------------------
In MyObj.cc:
-------------------------------------------
#include "MyObj.h"
struct MyObj::Imp {
// Implementation details
// ...
Imp() { }
void memberFunc() { }
};
// Forwarding functions
MyObj::MyObj() {
imp = new Imp();
}
MyObj::~MyObj() {
delete imp;
}
void MyObj::memberFunc() {
imp->memberFunc();
}
-------------------------------------------
Even though MyObj::Imp is a private nested class of MyObj, Doxygen generates
documentation for it if EXTRACT_ALL is set to YES, even though EXTRACT_PRIVATE
is set to NO. Is there any way of preventing documentation being generated for
these private implementation classes while still generating documentation for
all other undocumented things?
Cheers,
Sy
|