diff --git a/src/shared/cplusplus/Parser.cpp b/src/shared/cplusplus/Parser.cpp index 11bef468c91b5770a86c470cf41052a8f725a00b..d8281ec9848ddf0fc96c96e507a9f5284e3141c7 100644 --- a/src/shared/cplusplus/Parser.cpp +++ b/src/shared/cplusplus/Parser.cpp @@ -1577,13 +1577,22 @@ bool Parser::parseTemplateTypeParameter(DeclarationAST *&node) bool Parser::lookAtTypeParameter() const { - if ((LA() == T_CLASS || LA() == T_TYPENAME) && LA(2) == T_IDENTIFIER) { - switch (LA(3)) { - case T_EQUAL: - case T_COMMA: - case T_GREATER: - return true; + if (LA() == T_CLASS || LA() == T_TYPENAME) { + if (LA(2) == T_IDENTIFIER) { + switch (LA(3)) { + case T_EQUAL: + case T_COMMA: + case T_GREATER: + return true; + + default: + return false; + } } + + // recognized an anonymous template type parameter. e.g + // template <typename> + return true; } return false;