diff options
Diffstat (limited to 'src/groupdef.cpp')
-rw-r--r-- | src/groupdef.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/groupdef.cpp b/src/groupdef.cpp index f4d4eb9..0ac582b 100644 --- a/src/groupdef.cpp +++ b/src/groupdef.cpp @@ -235,15 +235,20 @@ bool GroupDef::insertMember(MemberDef *md,bool docOnly) (srcMd->getOuterScope()->definitionType()==Definition::TypeFile && md->getOuterScope()->definitionType()==Definition::TypeFile); - LockingPtr<ArgumentList> srcMdAl = srcMd->argumentList(); - LockingPtr<ArgumentList> mdAl = md->argumentList(); + LockingPtr<ArgumentList> srcMdAl = srcMd->argumentList(); + LockingPtr<ArgumentList> mdAl = md->argumentList(); + LockingPtr<ArgumentList> tSrcMdAl = srcMd->templateArguments(); + LockingPtr<ArgumentList> tMdAl = md->templateArguments(); - if (srcMd->isFunction() && md->isFunction() && + if (srcMd->isFunction() && md->isFunction() && // both are a function + (tSrcMdAl.pointer()==0 && tMdAl.pointer()==0 || + (tSrcMdAl.pointer()!=0 && tMdAl.pointer()!=0 && tSrcMdAl->count()==tMdAl->count()) + ) && // same number of template arguments matchArguments2(srcMd->getOuterScope(),srcMd->getFileDef(),srcMdAl.pointer(), md->getOuterScope(),md->getFileDef(),mdAl.pointer(), TRUE - ) && - sameScope + ) && // matching parameters + sameScope // both are found in the same scope ) { if (srcMd->getGroupAlias()==0) |