From 1d0c9b6fefb6c2e0a9a2b7a7ea3192ccace33710 Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Wed, 8 Jan 2014 13:40:29 +0100 Subject: Bug 721618 - Move contructors and move assignment operators of embedded classes of template classes cannot be matched. --- src/doxygen.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/doxygen.cpp b/src/doxygen.cpp index 12e73f6..1eac506 100644 --- a/src/doxygen.cpp +++ b/src/doxygen.cpp @@ -5567,6 +5567,15 @@ static bool isSpecialization( return FALSE; } +static bool scopeIsTemplate(Definition *d) +{ + bool result=FALSE; + if (d && d->definitionType()==Definition::TypeClass) + { + result = ((ClassDef*)d)->templateArguments() || scopeIsTemplate(d->getOuterScope()); + } + return result; +} static QCString substituteTemplatesInString( const QList &srcTempArgLists, @@ -6154,7 +6163,7 @@ static void findMember(EntryNav *rootNav, matching = FALSE; } } - bool classIsTemplate = md->getClassDef() && md->getClassDef()->templateArguments(); + bool classIsTemplate = scopeIsTemplate(md->getClassDef()); bool mdIsTemplate = md->templateArguments()!=0; bool classOrMdIsTemplate = mdIsTemplate || classIsTemplate; bool rootIsTemplate = root->tArgLists!=0; -- cgit v0.12