コピー オン ライトに関するウィキペディアの記事を読んでいて(それをサポートするファイルシステムがあるかどうか知りたいです)、次の一節に驚きました。
COW は、カーネルの外部、ライブラリ、アプリケーション、およびシステム コードでも使用されます。たとえば、C++ 標準ライブラリによって提供される文字列クラスは、コピー オン ライトの実装を許可するように特別に設計されています。
std::string x("Hello");
std::string y = x; // x and y use the same buffer
y += ", World!"; // now y uses a different buffer
// x still uses the same old buffer
コピー オン ライトがすべて STL でサポートされていることを知りませんでした。本当?や など、他の STL クラスにも適用されますstd::vector
かstd::array
? その最適化をサポートしているコンパイラはどれですか (特に、G++、Intel C++ コンパイラ、および Microsoft C++ コンパイラについて知りたいです)。