Ответ 1
GCC vstring
- это универсальный класс строк, который был введен в реализацию GCC 4.1 libstdc++
.
Он совместим с std::basic_string
, с этими дополнительными деталями:
- Предоставляются два базовых класса:
- по умолчанию исключается подсчет ссылок и оптимизирован для коротких строк;
- альтернативный, все еще использует его (подсчет ссылок, то есть), одновременно улучшая несколько областей низкого уровня (например, выравнивание). См.
vstring_fwd.h
для некоторых полезных typedefs.
- Были переписаны различные алгоритмы (например, замена), добавлены упорядоченные и простые оптимизаторы кода.
- Вариант 3 DR 431 реализован для обеих доступных баз, таким образом улучшая поддержку генераторов с сохранением состояния.
DR431 Отчет о дефекте рабочей группы библиотеки 431, с вариантом 3, похожим на реализацию лучшей поддержки распределителя для класса, чтобы обеспечить лучшую замену и другой распределитель связанных операций.
Основные сведения из примечания к выпуску GCC 4.1 в разделе библиотеки Runtime Library.
изменить:
Похоже, что первоначальная цель этого расширения заключалась в том, чтобы обеспечить основу для реализации С++ 11 std::string
. Паоло Карлини, разработчик GCC/libstdС++, комментирует в этом GCC Bug Report, что <ext/vstring.h>
содержит неосновную подсчитанную экспериментальную версию следующего std::string
. Комментарий от 12 апреля 2012 года:
Мы попытались объяснить, что такая проблема хорошо известна и, более или меньше, влияет на любую ссылочную подсчитанную реализацию... Это не тот случай, когда подсчет ссылок не используется, и действительно, это не будет (в соответствии с новым стандартом С++ 11) в новой реализации
std::string
, которая мы в настоящее время демонстрируем как<ext/vstring.h>
...