Re: [eigen] About dropping C++03 compatibility

[ Thread Index | Date Index | More Archives ]

I would think that a fairly modest, but highly desirable option, would be to move to a 3.5 branch without guarantees for C++03 compatibility and use that to clean up / get rid of all the cruft due to c++03 compatibility; 3.4 would become the new 3.3.
As for which language variant to use, I don't have a strong preference as long as it is c++11 or newer :-).


On Tue, Feb 19, 2019 at 5:58 AM Gael Guennebaud <gael.guennebaud@xxxxxxxxx> wrote:

this a follow-up of another thread that deviated towards the question of what should be the minimal c++ version required for future Eigen's version.

Just to be clear, the 3.4 version will be fully compatible with C++03, while exposing/taking-advantage-of a few C++11, C++14, and even C++17 features when available.

There is, however, a limit in conditionally enabling features based on the available c++ version, and maintaining multiple variants is out of reach for us.

Moreover, switching to c++11 or even 14 would help *a lot* in day-to-days Eigen coding with many opportunities to simplify the code base, logics, compilation-times, unit-testing, etc.

Based on this table:, requiring c++11 implies:
- GCC 4.8.1
- clang 3.3
- MSVC 2015 (19.00)
- ICC 15.0.

They are all 6 years old already.
For c++14, if we don't require extended constexpr nor NSDMI, then the requirements are:
- GCC 5
- clang 3.4
- MSVC 2015
- ICC 17.00.

Except for ICC, the difference is small.

My guess is that such a change will most likely impact some MSVC 2012/2013 users, but:
1) the post 3.4 release is still a far reach!
2) we can maintain the 3.4 branch a longer time as we did when switching from Eigen 2 to 3.

What do you think?


Mail converted by MHonArc 2.6.19+