Поддержка копирования при записи в 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

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