GCC vstring
to wszechstronna klasa łańcuchów, wprowadzona w implementacji GCC 4.1: libstdc++
.
Jest kompatybilny z std::basic_string
, z tych dodatkowych informacji:
- dwie klasy bazowe są:
- domyślny unika liczenia odniesienia i jest zoptymalizowana dla krótkich ciągów;
- alternatywny, nadal używa go (liczenie odwołań), poprawiając w kilku obszarach o niskim poziomie (np. Wyrównanie). Zobacz
vstring_fwd.h
dla niektórych przydatnych typów.
- Różne algorytmy zostały przepisane (np. Zamienione), usprawniono kod i dodano proste optymalizacje.
- Opcja 3 DR 431 jest zastosowana dla obu dostępnych baz, poprawiając w ten sposób obsługę stanowych podzielników.
DR431 to Library Working Group Defect Report 431, z opcją 3 wyglądającą jak implementacja lepszej obsługi przydziału dla klasy, aby umożliwić lepszą wymianę i inne operacje związane z przydziałem.
Podstawowe informacje znajdują się pod GCC 4.1's release notes, w sekcji Runtime Library.
edit:
Wygląda jakby Pierwotnym celem tego rozszerzenia było stworzenie podstaw do realizacji C++ 11 std::string
. Paolo Carlini, autor GCC/libstdC++, komentuje w tym numerze GCC Bug Report, że <ext/vstring.h>
zawiera niereferencyjną policzoną eksperymentalną wersję następnego std::string
. Komentarz z dnia 12 kwietnia 2012:
Co staraliśmy się wyjaśnić, że jest to rodzaj problemu jest dobrze znane i mniej lub bardziej wpływa dowolny odniesienia liczone realizacja ... To nie jest przypadku, gdy liczenie nie jest stosowana i rzeczywiście będzie to nie być wykorzystywane (na nowej C++ 11 standardu) w nowej realizacji std::string
który obecnie prezentujący jak <ext/vstring.h>
...
Podany link znajduje się bezpośrednio u góry * "Ten plik jest rozszerzeniem GNU do standardowej biblioteki C++." * Oczywiście, to nie odpowiada na twoje pytanie w całości. –
Jeśli obsługiwana jest pamięć, była to/była eksperymentalna reimplementacja 'std :: string' z tym samym interfejsem, ale inna odwaga. Plik ma daty praw autorskich w latach 2005-2007 i nic poza nim; zalecamy przeszukiwanie archiwum list dyskusyjnych ['libstdC++ '] (http://gcc.gnu.org/ml/libstdc++/) w tym okresie dla wzmianek. – zwol