Implémentation de la classe String. Plus de détails...
Fonctions membres publiques | |
StringImpl (std::string_view str) | |
StringImpl (const StringImpl &str) | |
StringImpl (Span< const Byte > bytes) | |
UCharConstArrayView | utf16 () |
Span< const Byte > | largeUtf8 () |
Vue sur l'encodage UTF-8 AVEC zéro terminal. | |
Span< const Byte > | bytes () |
idem largeUtf8() mais SANS le zéro terminal | |
bool | isEqual (StringImpl *str) |
bool | isLessThan (StringImpl *str) |
bool | isEqual (StringView str) |
bool | isLessThan (StringView str) |
std::string_view | toStdStringView () |
StringView | view () |
void | addReference () |
void | removeReference () |
Int32 | nbReference () |
void | internalDump (std::ostream &ostr) |
StringImpl * | clone () |
StringImpl * | append (StringImpl *str) |
StringImpl * | append (StringView str) |
StringImpl * | replaceWhiteSpace () |
StringImpl * | collapseWhiteSpace () |
StringImpl * | toUpper () |
StringImpl * | toLower () |
bool | null () |
bool | empty () |
bool | hasUtf8 () const |
bool | hasUtf16 () const |
Fonctions membres publiques statiques | |
static StringImpl * | substring (StringImpl *str, Int64 pos, Int64 len) |
Types privés | |
enum | { eValidUtf16 = 1 << 0 , eValidUtf8 = 1 << 1 } |
Fonctions membres privées | |
StringImpl (Span< const UChar > uchars) | |
void | _setUtf16 (Span< const UChar > src) |
void | _createUtf16 () |
void | _setUtf8 (const Byte *src) |
void | _createUtf8 () |
void | _checkReference () |
void | _invalidateUtf16 () |
void | _invalidateUtf8 () |
void | _setArray () |
void | _setStrFromArray (Int64 ulen) |
void | _printStrUtf16 (std::ostream &o, Span< const UChar > str) |
void | _printStrUtf8 (std::ostream &o, Span< const Byte > str) |
void | _appendUtf8 (Span< const Byte > ref_str) |
void | _initFromSpan (Span< const Byte > bytes) |
void | _finalizeUtf8Creation () |
Attributs privés | |
std::atomic< Int32 > | m_nb_ref |
int | m_flags |
CoreArray< UChar > | m_utf16_array |
CoreArray< Byte > | m_utf8_array |
Amis | |
class | String |
class | StringBuilder |
Implémentation de la classe String.
Actuellement l'implémentation supporte deux encodages simultanés: UTF-8 et UTF-16. L'encodage UTF-16 est obsolète et sera supprimé fin 2019.
Lorsque le C++20 sera disponible, cette classe ne sera qu'une encapsulation de std::u8string.
Définition à la ligne 46 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Définition à la ligne 92 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
Arccore::StringImpl::StringImpl | ( | std::string_view | str | ) |
Définition à la ligne 104 du fichier StringImpl.cc.
Arccore::StringImpl::StringImpl | ( | const StringImpl & | str | ) |
Définition à la ligne 128 du fichier StringImpl.cc.
Définition à la ligne 140 du fichier StringImpl.cc.
|
private |
Définition à la ligne 151 du fichier StringImpl.cc.
Définition à la ligne 116 du fichier StringImpl.cc.
Définition à la ligne 359 du fichier StringImpl.cc.
|
inlineprivate |
Définition à la ligne 67 du fichier StringImpl.cc.
|
private |
Définition à la ligne 441 du fichier StringImpl.cc.
|
private |
Définition à la ligne 460 du fichier StringImpl.cc.
|
inlineprivate |
Définition à la ligne 80 du fichier StringImpl.cc.
Définition à la ligne 94 du fichier StringImpl.cc.
|
private |
Définition à la ligne 492 du fichier StringImpl.cc.
|
private |
Définition à la ligne 502 du fichier StringImpl.cc.
Définition à la ligne 512 du fichier StringImpl.cc.
Définition à la ligne 526 du fichier StringImpl.cc.
Définition à la ligne 479 du fichier StringImpl.cc.
void Arccore::StringImpl::addReference | ( | ) |
Définition à la ligne 200 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::append | ( | StringImpl * | str | ) |
Définition à la ligne 329 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::append | ( | StringView | str | ) |
Définition à la ligne 342 du fichier StringImpl.cc.
idem largeUtf8() mais SANS le zéro terminal
Définition à la ligne 161 du fichier StringImpl.cc.
Références Arccore::SpanImpl< T, SizeType, Extent, MinValue >::data(), largeUtf8(), et Arccore::SpanImpl< T, SizeType, Extent, MinValue >::size().
Référencé par Arccore::String::bytes().
StringImpl * Arccore::StringImpl::clone | ( | ) |
Définition à la ligne 298 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::collapseWhiteSpace | ( | ) |
Définition à la ligne 393 du fichier StringImpl.cc.
bool Arccore::StringImpl::empty | ( | ) |
Définition à la ligne 310 du fichier StringImpl.cc.
|
inline |
Définition à la ligne 90 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
inline |
Définition à la ligne 89 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
void Arccore::StringImpl::internalDump | ( | std::ostream & | ostr | ) |
Définition à la ligne 539 du fichier StringImpl.cc.
bool Arccore::StringImpl::isEqual | ( | StringImpl * | str | ) |
Définition à la ligne 246 du fichier StringImpl.cc.
bool Arccore::StringImpl::isEqual | ( | StringView | str | ) |
Définition à la ligne 276 du fichier StringImpl.cc.
bool Arccore::StringImpl::isLessThan | ( | StringImpl * | str | ) |
Définition à la ligne 259 du fichier StringImpl.cc.
bool Arccore::StringImpl::isLessThan | ( | StringView | str | ) |
Définition à la ligne 287 du fichier StringImpl.cc.
Vue sur l'encodage UTF-8 AVEC zéro terminal.
Définition à la ligne 235 du fichier StringImpl.cc.
Références Arccore::CoreArray< DataType >::view().
Référencé par bytes(), et Arccore::String::utf8().
|
inline |
Définition à la ligne 73 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
inline |
Définition à la ligne 87 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
void Arccore::StringImpl::removeReference | ( | ) |
Définition à la ligne 210 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::replaceWhiteSpace | ( | ) |
Définition à la ligne 381 du fichier StringImpl.cc.
|
static |
Définition à la ligne 429 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::toLower | ( | ) |
Définition à la ligne 417 du fichier StringImpl.cc.
std::string_view Arccore::StringImpl::toStdStringView | ( | ) |
Définition à la ligne 181 du fichier StringImpl.cc.
StringImpl * Arccore::StringImpl::toUpper | ( | ) |
Définition à la ligne 405 du fichier StringImpl.cc.
ConstArrayView< UChar > Arccore::StringImpl::utf16 | ( | ) |
Définition à la ligne 224 du fichier StringImpl.cc.
StringView Arccore::StringImpl::view | ( | ) |
Définition à la ligne 191 du fichier StringImpl.cc.
|
friend |
Définition à la ligne 48 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
friend |
Définition à la ligne 49 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Définition à la ligne 98 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
|
private |
Définition à la ligne 97 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
Définition à la ligne 99 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.
Définition à la ligne 100 du fichier arccore/src/base/arccore/base/internal/StringImpl.h.