https://gcc.gnu.org/bugzilla/show_bug.cgi?id=87947
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- That answer is about whether it's "safe", and explains that the -std options do not create ABI incompatibilities. The question is also stated as (emphasis in the original): > For simplicity, let's assume all headers were written in C++11, **using only > constructs whose semantics haven't changed between all three standard > versions**. This is a feature whose semantics changed. What you're seeing is pretty much required behaviour for a correct implementation, not an ABI incompatibility introduced by GCC.