Legalität der Copy-on-Write (COW) std::string-Implementierung in C 11
Obwohl man vielleicht geglaubt hat, dass COW Da es sich bei der Implementierung eines kompatiblen std::string in C 11 nicht um eine praktikable Technik handelt, haben jüngste Diskussionen zu Unsicherheiten geführt. Im Folgenden wird die Gültigkeit dieser Annahme basierend auf dem neuen Standard untersucht.
Verbot von COW-basierten std::string-Implementierungen in C 11
C 11 verbietet COW ausdrücklich -basierte Implementierungen von std::string. Diese Einschränkung ist in Abschnitt 21.4.1 p6 des Standards angegeben, der die Ungültigmachung von Iteratoren/Referenzen nur unter bestimmten Umständen zulässt:
In einer COW-Zeichenfolge erfordert der Aufruf eines nicht konstanten Operators[] das Erstellen einer Kopie (was Verweise ungültig macht), was im oben genannten Absatz verboten ist. Folglich sind COW-Strings in C 11 aufgrund dieser Einschränkung verboten.
Das obige ist der detaillierte Inhalt vonIst eine Copy-on-Write-std::string-Implementierung in C 11 zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!