C 11 でのコピーオンライト (COW) std::string 実装の合法性
COW であると信じられていたかもしれませんが、これは C 11 に準拠した std::string を実装するための実現可能な手法ではないため、最近の議論により不確実性が高まっています。以下では、新しい標準に基づいてこの仮定の妥当性を検討します。
C 11 での COW ベースの std::string 実装の禁止
C 11 は COW を明示的に禁止していますstd::string の -ベースの実装。この制限は、標準のセクション 21.4.1 p6 に記載されており、特定の状況でのみ反復子/参照の無効化が許可されます。
COW 文字列で非 const 演算子[] を呼び出すと、コピーの作成 (参照の無効化) が必要になりますが、これは前述の段落で禁止されています。したがって、この制約により、C 11 では COW 文字列が禁止されています。
以上がコピーオンライト std::string 実装は C 11 で合法ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。