Suporte de cópia na gravação no STL

Eu estava lendoum artigo da Wikipedia sobre copy-on-write (curioso se existem sistemas de arquivos que suportam isso), e ficou surpreso com a seguinte passagem:

O COW também é usado fora do kernel, na biblioteca, no aplicativo e no código do sistema. A classe de strings fornecida pela biblioteca padrão C ++, por exemplo, foi projetada especificamente para permitir implementações copy-on-write:

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

Eu não sabia que o copy-on-write era todo suportado no STL. Isso é verdade? Aplica-se a outras classes de STL, por ex.std::vector oustd::array? Quais compiladores suportam essa otimização (em particular, gostaria de saber sobre o G ++, o compilador Intel C ++ eo compilador Microsoft C ++)?

questionAnswers(2)

yourAnswerToTheQuestion