我使用doxygen来记录C ++代码。假设我有两个类:类Base和派生类派生自Base。我在Base和Derived中都有一个名为Foo的成员组。是否有可能使doxygen在Derived类的文档中显示一个名为Foo的组,而不是像我现在观察到的那样具有两个相同名称的组?
答案 0 :(得分:2)
我打了一张doxygen的结账来做这件事。补丁如下。我没有注意到生成的文档中有任何不良影响。实现的缺点是它是一个O(n ^ 2)算法,其中n是成员组的数量。在我的情况下,成员组的数量足够小,复杂性不会打扰我。
Index: src/util.cpp
===================================================================
--- src/util.cpp (revision 848)
+++ src/util.cpp (working copy)
@@ -5759,6 +5759,24 @@
(*ppMemberGroupSDict)->setAutoDelete(TRUE);
}
MemberGroup *mg = (*ppMemberGroupSDict)->find(groupId);
+
+ uint ngrps = (*ppMemberGroupSDict)->count();
+ const char * ghs = info->header;
+ int gid = groupId;
+ for (uint i=0; i != ngrps; ++i)
+ {
+ MemberGroup *tg = (*ppMemberGroupSDict)->at(i);
+ MemberListIterator oli(*(tg->members()));
+ MemberDef *omd = oli.current();
+ const char * ohs = Doxygen::memGrpInfoDict[omd->getMemberGroupId()]->header;
+ int oid = tg->groupId();
+ if ( ghs && ohs && strcmp(ghs, ohs) == 0)
+ {
+ mg = tg;
+ break;
+ }
+ }
+
if (mg==0)
{
mg = new MemberGroup(
该代码的工作原理是扫描成员组字典中已有的组,以查找具有相同名称的组(即标题)。如果找到这样的组,那么该组将用作要插入的成员的成员组。