C 11 の std::string でのコピーオンライト (COW) 実装の合法性
これは一般的に信じられてきました。コピーオンライト (COW) は、C で std::string の準拠した実装を実現する方法としては許可されていません11. しかし、最近の議論ではこの概念に異議が唱えられています。
Does C 11 Prohibit COW Implementations of std::string?
はい、COW ベースの std 実装です。 :string は C 11 では禁止されています。
標準規定
この制限は、C 11 標準 (セクション 21.4.1 p6):
"反復子/参照の無効化は次の場合にのみ許可されます: >
COW への影響
COW 文字列の場合、非 const 演算子 [] では、コピーを作成する必要があります (参照が無効になります)。ただし、このアクションは標準で禁止されており、std::string の COW 実装が C 11 に準拠していません。
以上がC 11 標準は `std::string` のコピーオンライト実装を禁止していますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。