[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