Date: prev next · Thread: first prev next last
2014 Archives by date, by thread · List index


Until now, our minimum C++ compiler requirements on master are:

  * Clang 3.1
  * GCC 4.6 (specifically for Munich; preferred 4.7)
  * MSVC 2012

Branch-off of LO 4.4 from master seems like a good time to re-visit. And natural candidates for consideration appear to be dropping MSVC 2012 for 2013, and/or the feasibility of dropping GCC 4.6 for 4.7.

What could that buy us in terms of newly available C++ features? Based on the progress from MSVC 2012 to 2013, the following list shows which core language features became available where:

Feature:                                        MSVC 2012 -> 2013;  GCC        (Clang)

Non-static data member initializers                No     -> Yes;   4.7        (3.0)
Variadic templates                                 No     -> Yes;   4.3/4.4    (2.9)
Initializer lists                                  No     -> Yes;   4.4        (3.1)
decltype v1.0, v1.1                                v1.1** -> v1.1;  4.3/4.8.1  (2.9/3.1)
Default template argumetns for function templates  No     -> Yes;   4.3        (2.9)
Alias templates                                    No     -> Yes;   4.7        (3.0)
Delegating constructors                            No     -> Yes;   4.7        (3.0)
Explicit conversion operators                      No     -> Yes;   4.5        (3.0)
Raw string literals                                No     -> Yes;   4.5        (3.0)
Defaulted and deleted functions                    No     -> Yes*;  4.4        (2.9/3.0)

(Taken from <http://msdn.microsoft.com/en-us/library/hh567368.aspx> "Support For C++11 Features (Modern C++): Visual Studio 2013,"<https://gcc.gnu.org/projects/cxx0x.html> "C++0x/C++11 Support in GCC." and <http://clang.llvm.org/cxx_status.html> "C++ Support in Clang.")

So dropping MSVC 2012 for 2013 would give us six new features:

* Variadic templates
* Initializer lists
* Default template argumetns for function templates
* Explicit conversion operators
* Raw string literals
* Defaulted and deleted functions

And additionally dropping GCC 4.6 for 4.7 would give us an additional three new features:

* Non-static data member initializers
* Alias templates
* Delegating constructors

Thoughts?

Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.