C++11 on master (towards LO 4.5)
Stephan Bergmann
sbergman at redhat.com
Tue Nov 25 00:13:36 PST 2014
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?
More information about the LibreOffice
mailing list