Skip to content

Commit 23ccf81

Browse files
Update templatesimplifier.cpp
1 parent 1349826 commit 23ccf81

1 file changed

Lines changed: 10 additions & 1 deletion

File tree

‎lib/templatesimplifier.cpp‎

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -401,6 +401,7 @@ unsigned int TemplateSimplifier::templateParameters(const Token *tok)
401401
return 0;
402402

403403
unsigned int level = 0;
404+
unsigned int inTernary = 0;
404405

405406
while (tok) {
406407
// skip template template
@@ -460,8 +461,16 @@ unsigned int TemplateSimplifier::templateParameters(const Token *tok)
460461
}
461462

462463
// Skip '=', '?', ':'
463-
if (Token::Match(tok, "=|?|:"))
464+
if (Token::Match(tok, "=|?|:")) {
465+
if (tok->str()[0] == '?')
466+
++inTernary;
467+
else if (tok->str()[0] == ':') {
468+
if (inTernary == 0)
469+
return 0;
470+
--inTernary;
471+
}
464472
tok = tok->next();
473+
}
465474
if (!tok)
466475
return 0;
467476

0 commit comments

Comments
 (0)