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
- C++11 on master (towards LO 4.5) · Stephan Bergmann
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.