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?
_______________________________________________
LibreOffice mailing list
LibreOffice@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice

Reply via email to