diff options
Diffstat (limited to 'src/libs/3rdparty/cplusplus/Bind.cpp')
-rw-r--r-- | src/libs/3rdparty/cplusplus/Bind.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/libs/3rdparty/cplusplus/Bind.cpp b/src/libs/3rdparty/cplusplus/Bind.cpp index 98310f9ee8..b21b167655 100644 --- a/src/libs/3rdparty/cplusplus/Bind.cpp +++ b/src/libs/3rdparty/cplusplus/Bind.cpp @@ -2639,10 +2639,14 @@ bool Bind::visit(TemplateIdAST *ast) } const Identifier *id = identifier(ast->identifier_token); + const int tokenKindBeforeIdentifier(translationUnit()->tokenKind(ast->identifier_token - 1)); + const bool isSpecialization = (tokenKindBeforeIdentifier == T_CLASS || + tokenKindBeforeIdentifier == T_STRUCT); if (templateArguments.empty()) - _name = control()->templateNameId(id); + _name = control()->templateNameId(id, isSpecialization); else - _name = control()->templateNameId(id, &templateArguments[0], templateArguments.size()); + _name = control()->templateNameId(id, isSpecialization, &templateArguments[0], + templateArguments.size()); ast->name = _name; return false; |