From e4ce7b36b010b1de6d56dfad3d364fdeb1615641 Mon Sep 17 00:00:00 2001 From: Peter Vingelmann Date: Thu, 15 Sep 2016 03:06:06 +0200 Subject: [PATCH] Do not recognize the "template" disambiguator for dependent names as an actual template header --- src/ASBeautifier.cpp | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/ASBeautifier.cpp b/src/ASBeautifier.cpp index 9eaf53f..3adcb3a 100644 --- a/src/ASBeautifier.cpp +++ b/src/ASBeautifier.cpp @@ -2871,6 +2871,18 @@ void ASBeautifier::parseCurrentLine(const string& line) && ASBeautifier::peekNextChar(line, i + (*newHeader).length() - 1) != '(') newHeader = NULL; + // The "template" disambiguator for dependent names should not be + // recognized as an actual template header. For example: + // T::template foo() + // s.template foo(); + // this->template foo(); + if (newHeader == &AS_TEMPLATE + && (prevNonSpaceCh == ':' || prevNonSpaceCh == '.' + || prevNonSpaceCh == '-')) + { + newHeader = NULL; + } + if (newHeader != NULL) { // if we reached here, then this is a header...