Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 327223 - [C++0x] Range-based for
Summary: [C++0x] Range-based for
Status: RESOLVED FIXED
Alias: None
Product: CDT
Classification: Tools
Component: cdt-parser (show other bugs)
Version: 8.0   Edit
Hardware: PC All
: P3 enhancement (vote)
Target Milestone: 8.0   Edit
Assignee: Markus Schorn CLA
QA Contact: Mike Kucera CLA
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 327297
  Show dependency tree
 
Reported: 2010-10-07 08:48 EDT by Alfred Krohmer CLA
Modified: 2010-10-21 11:23 EDT (History)
1 user (show)

See Also:


Attachments
testcase + fix (33.41 KB, patch)
2010-10-21 10:21 EDT, Markus Schorn CLA
mschorn.eclipse: iplog-
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Alfred Krohmer CLA 2010-10-07 08:48:24 EDT
Build Identifier: 20100917-0705

When using some new C++0x language features, Eclipse underlines (with orange) the code in the editor, because it doesn't know the new syntax.

Examples:
- iterating over a container:
  vector<int> v = { 2, 1, 4 }; // not the matter, recognized
  for (int &i : v)
      cout << i << endl;
- lambda expressions: (assuming the same vector as above)
  std::for_each (v.begin(), v.end (), [] (int &i) { cout << i << endl; });

It would be nice to see these features recoginzed by Eclipse so that the code won't get unreadable by warning underlinings.

Reproducible: Always
Comment 1 Marc-André Laperle CLA 2010-10-07 12:39:25 EDT
I think this is already in CDT 8.0, see bug 316307. If you want to try it, you can download a build here:
http://download.eclipse.org/tools/cdt/builds/8.0.0/index.html
Comment 2 Alfred Krohmer CLA 2010-10-07 13:08:01 EDT
I just installed the most recent build from http://download.eclipse.org/tools/cdt/builds/8.0.0/I.I201009242334/index.html and Eclipse now recognizes the lambda expressions, but still complains about the range-based for loop.
Comment 3 Doug Schaefer CLA 2010-10-07 13:59:45 EDT
Wrong Component. C++0x is still a work in progress. I believe Markus has bugs open for this already. We're almost there.
Comment 4 Markus Schorn CLA 2010-10-08 02:35:52 EDT
I have not yet created bugs for all of the c++0x features, lambda expressions are covered by bug 316307.
I will use this bug for 'Range based for', the specification is here:
http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html
Comment 5 Markus Schorn CLA 2010-10-21 10:21:50 EDT
Created attachment 181395 [details]
testcase + fix
Comment 6 Markus Schorn CLA 2010-10-21 10:22:47 EDT
Implemented in 8.0 > 20101021
Comment 7 CDT Genie CLA 2010-10-21 11:23:05 EDT
*** cdt cvs genie on behalf of mschorn ***
Bug 327223: [C++0x] Range-based for loop.

[*] StatementWriter.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/StatementWriter.java?root=Tools_Project&r1=1.3&r2=1.4
[*] NodeWriter.java 1.4 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/NodeWriter.java?root=Tools_Project&r1=1.3&r2=1.4
[*] DeclarationWriter.java 1.10 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/rewrite/astwriter/DeclarationWriter.java?root=Tools_Project&r1=1.9&r2=1.10

[*] CPPVisitor.java 1.142 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPVisitor.java?root=Tools_Project&r1=1.141&r2=1.142
[*] CPPSemantics.java 1.195 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/semantics/CPPSemantics.java?root=Tools_Project&r1=1.194&r2=1.195

[+] CPPASTRangeBasedForStatement.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPASTRangeBasedForStatement.java?root=Tools_Project&revision=1.1&view=markup
[*] CPPNodeFactory.java 1.19 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/CPPNodeFactory.java?root=Tools_Project&r1=1.18&r2=1.19
[*] GNUCPPSourceParser.java 1.243 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/cpp/GNUCPPSourceParser.java?root=Tools_Project&r1=1.242&r2=1.243

[*] ICPPNodeFactory.java 1.15 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPNodeFactory.java?root=Tools_Project&r1=1.14&r2=1.15
[+] ICPPASTRangeBasedForStatement.java  http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/core/dom/ast/cpp/ICPPASTRangeBasedForStatement.java?root=Tools_Project&revision=1.1&view=markup

[*] DeclarationOptions.java 1.12 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/DeclarationOptions.java?root=Tools_Project&r1=1.11&r2=1.12
[*] VariableReadWriteFlags.java 1.7 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core/parser/org/eclipse/cdt/internal/core/dom/parser/VariableReadWriteFlags.java?root=Tools_Project&r1=1.6&r2=1.7

[*] AST2CPPTests.java 1.372 http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.cdt-core/org.eclipse.cdt.core.tests/parser/org/eclipse/cdt/core/parser/tests/ast2/AST2CPPTests.java?root=Tools_Project&r1=1.371&r2=1.372