Поддержка копирования при записи в STLC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Поддержка копирования при записи в STL

Сообщение Anonymous »

Я только что читал статью в Википедии о копировании при записи (любопытно, есть ли файловые системы, поддерживающие это), и был удивлен следующим отрывком:


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++)?

Подробнее здесь: https://stackoverflow.com/questions/172 ... ort-in-stl
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»