On 10/25/19, Gabriel Dos Reis via gcc <gcc@gcc.gnu.org> wrote: > [Andrew] > > | > GCC has some rather unique requirements, in that we support a great > many > | > build configurations, some of which are rather primitive - for example, > | > requiring just C++98 with exceptions disabled, in that we want to be > able to > | be > | > bootstrappable on relatively "ancient" configurations. > | > IIRC auto-registration of tests requires that the build configuration > have a > | > sufficiently sane implementation of C++ - having globals with > non-trivial > | ctors > | > tends to be problematic when dealing with early implementations of C++. > | > | Is C++98 the limit of what we can use in GCC? If so, that immediately > | eliminates Catchv1 (C++03), Catch2 (C++11+) and GTest (C++11) > > C++98 was what Diego, Lawrence, Benjamin, Ian, and myself could agreed to > back in 2011-2012 when C++11 got just out as a C++ standard, so we couldn't > pick C++11 as we didn't have enough G++ out there to count on. > > I would expect the situation to have drastically changed - with very handy > and popular features such as 'constexpr' (especially with the C++14 > relaxation), lambdas and range-for. > > Jason, Jonathan - is the situation on the terrain really that dire that > C++11 (or C++14) isn't at all available for platforms that GCC is > bootstrapped from? > > -- Gaby >
Nicholas Krause was also wanting to move to C++11 recently: https://gcc.gnu.org/ml/gcc/2019-10/msg00110.html (this month) https://gcc.gnu.org/ml/gcc/2019-09/msg00228.html (last month) As I said in that thread, I'd want to try just toggling -Wnarrowing from off to on first before going full C++11. So, GCC 10 would be C++98 + -Wnarrowing, and then GCC 11 could be full C++11. Plus then the GCC version numbers would also line up with the version of C++ being used. Eric