GCC vstring
- это универсальный класс строк, который был введен в реализацию GCC 4.1 libstdc++
.
Он совместим с std::basic_string
, с этими дополнительными деталями: предоставляются
- Два базовых классов:
- по умолчанию один избегает подсчета ссылок и оптимизирован для коротких строк;
- альтернативный, все еще использует его (подсчет ссылок, то есть), при этом улучшается в нескольких областях низкого уровня (например, выравнивание). См.
vstring_fwd.h
для некоторых полезных typedef.
- Различные алгоритмы были переписаны (например, заменить), добавлены упорядоченные и простые оптимизаторы кода.
- Вариант 3 DR 431 реализован для обеих доступных баз, таким образом улучшая поддержку генераторов с поддержкой состояния.
DR431 является Library Working Group Defect Report 431, с вариантом 3, похожим на реализацию лучшей поддержки распределителя для класса, чтобы обеспечить лучшую замену и другие операции, связанные с распределителем.
Основные сведения от GCC 4.1's release notes, под рубрикой Runtime Library.
редактировать:
Это выглядит, как будто первоначальная цель этого расширения заключается в обеспечении основы для реализации на 11 std::string
C++. Паоло Карлини, автор GCC/libstdC++, комментирует в этом GCC Bug Report, что <ext/vstring.h>
содержит неопубликованную экспериментальную версию следующего std::string
. Комментарий от 12 апреля 2012 года:
То, что мы пытались объяснить, что это своего рода вопрос хорошо известен и, более или менее , влияет любой подсчет ссылок реализация ... Это не случай, когда подсчет ссылок не используется, и на самом деле это не быть используется (в соответствии с новым C++ 11 стандарта) в новой реализации std::string
, которые мы в настоящее время, демонстрирующая, как <ext/vstring.h>
...
Указанная ссылка упоминается в верхней части * «Этот файл является расширением GNU для стандартной библиотеки C++». * Конечно, это не полностью отвечает на ваш вопрос. –
Если память служит, то есть/была экспериментальной переопределением 'std :: string' с тем же интерфейсом, но с разными настройками. Файл имеет даты авторских прав в 2005-2007 годах, и с тех пор ничего нет; рекомендуем в течение этого периода времени искать в архиве списка рассылки ['libstdC++'] (http://gcc.gnu.org/ml/libstdc++/). – zwol