https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86272
--- Comment #4 from Jonathan Wakely <redi at gcc dot gnu.org> --- Oh, also I noticed that __gnu_debug::string probably doesn't work with _GLIBCXX_USE_CXX11_ABI=0 because it provides the C++11 API, e.g. insert takes const_iterator not iterator, and returns non-void. The _Base string doesn't meet that interface when using _GLIBCXX_USE_CXX11_API=0. I don't consider that a bug - the old std::string has a number of non-conformance issues, and I don't plan to address them. If you want a proper C++11 std::string you need to enable the new ABI, because that's why it exists.