Heim >Backend-Entwicklung >C++ >Ist die Copy-on-Write-Implementierung von std::string in C 11 zulässig?
Legalität der COW std::string-Implementierung in C 11
In früheren Versionen von C war Copy-on-Write (COW). eine praktikable Implementierungsstrategie für std::string. Es wurden jedoch Bedenken hinsichtlich seiner Gültigkeit in C 11 geäußert. Dieser Artikel untersucht die Rechtmäßigkeit von COW-basierten std::string-Implementierungen in C 11.
Frage: Verbietet C 11 dies ausdrücklich? COW-basierte std::string-Implementierungen?
Antwort:Nein, C 11 gibt nicht ausdrücklich an, dass COW-basierte Implementierungen verboten sind.
Frage: Wenn nicht, wie ist diese Einschränkung impliziert?
Antwort: Die Die Einschränkung ergibt sich aus den neuen Anforderungen in C 11 bezüglich der Iterator- und Referenz-Invalidierung. Gemäß Abschnitt 21.4.1 p6 des Standards ist eine Invalidierung nur in bestimmten Fällen zulässig:
In einer COW-String-Implementierung würde der Aufruf eines nicht konstanten Operators[] eine Kopie- und Referenzungültigmachung erfordern. Der oben genannte Absatz verbietet dies jedoch. Daher sind COW std::string-Implementierungen in C 11 nicht mehr zulässig.
Das obige ist der detaillierte Inhalt vonIst die Copy-on-Write-Implementierung von std::string in C 11 zulässig?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!