Heim >Backend-Entwicklung >C++ >Verbietet der C 11-Standard Copy-on-Write-Implementierungen für „std::string'?
Legalität der Copy-on-Write (COW)-Implementierung in std::string von C 11
Es ist eine weit verbreitete Meinung, dass Copy-on-Write (COW) ist kein zulässiger Weg, um eine konforme Implementierung von std::string in C 11 zu realisieren. Aktuelle Diskussionen haben dies jedoch in Frage gestellt Vorstellung.
Verbietet C 11 COW-Implementierungen von std::string?
Ja, COW-basierte Implementierungen von std::string sind in C 11 verboten.
Standardbestimmungen
Die Einschränkung ist ausdrücklich im C 11-Standard angegeben (Abschnitt 21.4.1 p6):
"Die Ungültigmachung von Iteratoren/Referenzen ist nur zulässig für:
Implikation für COW
Für einen COW-String würde der Aufruf des nicht konstanten Operators[] das Erstellen einer Kopie erfordern (was Referenzen ungültig machen würde). Diese Aktion ist jedoch durch den Standard verboten, wodurch COW-Implementierungen von std::string in C 11 nicht konform sind.
Das obige ist der detaillierte Inhalt vonVerbietet der C 11-Standard Copy-on-Write-Implementierungen für „std::string'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!