Matt Borland wrote:
Maybe requiring support for all the language features or the standard library is not strictly necessary.
I would argue that it is necessary to strictly require full compliance with C++11. Invariably the libraries are going to have interdependencies, and strict compliance would give us a known lowest common denominator. Let’s say Boost.X uses GCC 4.8 and depends on Boost.Y which switches from Boost.TypeTraits to <type_traits> since it no longer has to support C++03. Now Boost.X either has to increase it’s minimum compiler version to GCC 5, or the maintainer of Boost.Y is hamstrung trying to support Boost.X.
That's not entirely true. <type_traits> is functional under GCC 4.8, it's only missing a handful of traits (is_trivially_*) and that's not hard to work around. https://github.com/boostorg/variant2/blob/95a8c5ffec407533893fa39900bc7799c2... 4.8 is not a C++11 compiler for other reasons though; its <regex> is completely broken. On the other hand, I'm not sure that <regex> can ever be considered not completely broken.