Soporte de copia en escritura en STL

Solo estaba leyendoun artículo de Wikipedia sobre Copia en escritura (Es curioso si hay algún sistema de archivos que lo soporte), y se sorprendió con el siguiente pasaje:

COW también se usa fuera del kernel, en la biblioteca, la aplicación y el código del sistema. La clase de cadena proporcionada por la biblioteca estándar de C ++, por ejemplo, fue diseñada específicamente para permitir implementaciones de copia en escritura:

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

No sabía que la copia en escritura era compatible con STL. ¿Es eso cierto? ¿Se aplica a otras clases STL, por ejemplo,std::vector ostd::array? ¿Qué compiladores admiten esa optimización (en particular, me pregunto acerca de G ++, el compilador Intel C ++ y el compilador Microsoft C ++)?

Respuestas a la pregunta(2)

Su respuesta a la pregunta