[diff.cpp03.strings] # Annex C (informative) Compatibility [[diff]](./#diff) ## C.6 C++ and ISO C++ 2003 [[diff.cpp03]](diff.cpp03#strings) ### C.6.11 [[strings]](strings "27 Strings library"): strings library [diff.cpp03.strings] [1](#1) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2535) **Affected subclause:** [[string.classes]](string.classes) **Change:** basic_string requirements no longer allow reference-counted strings[.](#1.sentence-1) **Rationale:** Invalidation is subtly different with reference-counted strings[.](#1.sentence-2) This change regularizes behavior[.](#1.sentence-3) **Effect on original feature:** Valid C++ 2003 code may execute differently in this revision of C++[.](#1.sentence-4) [2](#2) [#](http://github.com/Eelis/draft/tree/9adde4bc1c62ec234483e63ea3b70a59724c745a/source/compatibility.tex#L2545) **Affected subclause:** [[string.require]](string.require) **Change:** Loosen basic_string invalidation rules[.](#2.sentence-1) **Rationale:** Allow small-string optimization[.](#2.sentence-2) **Effect on original feature:** Valid C++ 2003 code may execute differently in this revision of C++[.](#2.sentence-3) Some const member functions, such as data and c_str, no longer invalidate iterators[.](#2.sentence-4)