forked from qt-creator/qt-creator
C++11: Fix parsing of expressions like vector<int>{1}.
The parser considers '{' an operator and thus thought
"template-id {" couldn't possibly be valid. This patch adds
'{' as an exception to the rule.
Change-Id: I40730fcdc5cade48566b4c8b6fde390f455bbdba
Reviewed-by: Nikolai Kosjar <nikolai.kosjar@digia.com>
This commit is contained in:
1
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
1
src/libs/3rdparty/cplusplus/Parser.cpp
vendored
@@ -4731,6 +4731,7 @@ bool Parser::parseNameId(NameAST *&name)
|
|||||||
case T_SEMICOLON:
|
case T_SEMICOLON:
|
||||||
case T_LBRACKET:
|
case T_LBRACKET:
|
||||||
case T_LPAREN:
|
case T_LPAREN:
|
||||||
|
case T_LBRACE:
|
||||||
return true;
|
return true;
|
||||||
|
|
||||||
case T_THIS:
|
case T_THIS:
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
auto x = int{};
|
auto x = int{};
|
||||||
auto y = Foo{};
|
auto y = Foo{};
|
||||||
auto z = typename Foo<T>{};
|
auto z = typename Foo<T>{};
|
||||||
|
auto a = Foo<T>{};
|
||||||
|
|
||||||
auto d = new C(1, abc...);
|
auto d = new C(1, abc...);
|
||||||
auto e = new C{1, 2, 3};
|
auto e = new C{1, 2, 3};
|
||||||
|
|||||||
Reference in New Issue
Block a user