> changes while support is experimental. As a hypothetical example, we > might realise that our implementation of std::variant has a bug and > needs an extra bool member added to it in GCC 9+. That would change > the size of std::variant objects, and so would make C++17 code > compiled with GCC 9 incompatible with C++17 code compiled with GCC 8. > > I'm not aware of any such problems at the moment, but if we need to > make such changes then we will do so. So in that way, C++17 support is experimental in the same way in which C++14 is with the difference that the former has been around much less, therefore it's more likely for those kind of changes to be made. I guess it also means that as long as we stick to GCC8 we are shielded from unexpected ABI changes and if any such changes will be made they will only be made in upcoming major versions then?