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:

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...