C++-2011 Support for KDevelop
Milian Wolff
Short description: After years of work, the next version of C++ has reached FDIS status and will henceforth be known as C++ 2011. It comes with various new features, both syntactically as well as semantically. As compilers support a subset of this standard even today, proper support in KDevelop becomes more and more important. During this GSoC I hence plan to implement the required changes to provide a smooth C++-2011 experience for our users.
Name: Milian Wolff
Email Address: mail@milianw.de
Freenode IRC Nick: milian
IM Service and Username:
- MSN: milianwolff@gmx.net
- ICQ: 201408577
- Jabber: mwolff@kdetalk.net
Location (City, Country and/or Time Zone): Berlin, Germany (GST+1)
Proposal Title: C++-2011 Support for KDevelop
Motivation for Proposal / Goal:
After years of work, the next version of C++ has reached FDIS status and will henceforth be known as C++ 2011. It comes with various new features, both syntactically as well as semantically.
As compilers support a subset of this standard even today, proper support in KDevelop becomes more and more important. During this GSoC I hence plan to implement the required changes to provide a smooth C++-2011 experience for our users.
Implementation Details:
I intend to implement as many changes in the KDevelop C++ plugin as required for proper C++-2011 support. Each new feature will be accompanied by proper unit tests.
I'll concentrate on the features already implemented by GCC 4.6, i.e.: http://gcc.gnu.org/gcc-4.6/cxx0x_status.html
Tentative Timeline (in weekly intervals until 2 weeks after the end of GSoC):
Week 1: make it possible to switch on C++-2011 support (bug 266816)
Week 2: implement range based for (bug 268539), implement rvalue references, Initialization of class objects by rvalues, implement decltype
Week 3: implement lambdas: [=]{expression;}, improve auto-typed variables support
Week 5,6: implement variadic templates, Local and unnamed types as template arguments
Week 7: implement Initializer lists, Non-static data member initializers, static asserts
Week 8: implement right-angle-brackets, Default template arguments for function templates
Week 9: implement Strongly-typed enums, nullptr constant, Forward declarations for enums
Week 10: implement Explicit virtual overrides, Inline namespaces, Unrestricted unions
Week 11: New character types, Unicode string literals, Raw string literals, Universal character name literals
Week 12: Standard Layout Types, Defaulted and deleted functions, Extending sizeof
Do you have other obligations from late May to early August (school, work, vacation, etc.)? Please note that we expect the Summer of Code to be a full-time, 40-hr a week occupation. It is important to be clear and upfront about other commitments that you may have during that time.
I work 10h per week.
About Me (let us know who you are!):
I think you all know me :) Core developer of KDevelop & Kate for quite some time now. Creator of Massif-Visualizer. I study Physics and hope to get my Bachelor this year, then I'll continue with a Master. I work for KDAB. That should be enough for now...
