Strings library
Table des matières |
Caractères
Dans la bibliothèque standard C++, un caractère est un objet qui, lorsqu'il est traité séquentiellement, peut représenter du texte.
Le terme désigne non seulement les objets de types caractères , mais aussi toute valeur pouvant être représentée par un type qui fournit les définitions spécifiées dans la bibliothèque des chaînes et les bibliothèques suivantes :
| (depuis C++11) |
Dans la bibliothèque de chaînes et la bibliothèque d'expressions régulières (depuis C++11) , un caractère ne peut être que de types caractère , c'est-à-dire les types non-tableaux qui satisfont aux exigences de PODType (jusqu'à C++20) TrivialType et StandardLayoutType (depuis C++20) (jusqu'à C++26) TriviallyCopyable et StandardLayoutType (depuis C++26) .
|
Pour tout type de type caractère
|
(depuis C++26) |
Par conséquent, les caractères sont également appelés char-like objects dans la bibliothèque de chaînes et la bibliothèque d'expressions régulières (depuis C++11) .
Certains composants de la bibliothèque standard acceptent des types conteneurs de caractères . Ceux-ci sont également des types utilisés pour représenter des caractères individuels. Ces types sont utilisés pour l'un des arguments template de std::char_traits et des modèles de classe qui utilisent std::char_traits .
Composants de la bibliothèque
La bibliothèque de chaînes C++ comprend les composants suivants :
Caractéristiques des caractères
De nombreux modèles de classes liés aux caractères (tels que
std::basic_string
) nécessitent un ensemble de types et de fonctions connexes pour compléter la définition de leur sémantique. Ces types et fonctions sont fournis sous la forme d'un ensemble de
typedef
membres et de fonctions dans le paramètre de modèle
Traits
utilisé par chaque modèle de ce type. Les classes capables de compléter cette sémantique sont les
CharTraits
.
La bibliothèque de chaînes fournit le modèle de classe std::char_traits qui définit les types et fonctions pour std::basic_string et std::basic_string_view (depuis C++17) .
Les spécialisations suivantes sont définies, toutes satisfont aux CharTraits exigences :
|
Défini dans l'en-tête
<string>
|
||
|
template
<>
class
char_traits
<
char
>
;
|
||
|
template
<>
class
char_traits
<
wchar_t
>
;
|
||
|
template
<>
class
char_traits
<
char8_t
>
;
|
(depuis C++20) | |
|
template
<>
class
char_traits
<
char16_t
>
;
|
(depuis C++11) | |
|
template
<>
class
char_traits
<
char32_t
>
;
|
(depuis C++11) | |
Lorsqu'un type de conteneur de caractères défini par l'utilisateur pour std::basic_string et std::basic_string_view (depuis C++17) est utilisé, il est également nécessaire de fournir une classe de traits de caractères correspondante (qui peut être une spécialisation de std::char_traits ).
Classes de chaînes de caractères ( std::string etc.)
Le modèle de classe std::basic_string généralise la manière dont les séquences de caractères sont manipulées et stockées. La création, la manipulation et la destruction des chaînes sont toutes gérées par un ensemble pratique de méthodes de classe et de fonctions associées.
Plusieurs spécialisations de std::basic_string sont fournies pour les types couramment utilisés :
|
Défini dans l'en-tête
<string>
|
|
| Type | Définition |
std::string
|
std:: basic_string < char > |
std::wstring
|
std:: basic_string < wchar_t > |
std::u8string
(depuis C++20)
|
std:: basic_string < char8_t > |
std::u16string
(depuis C++11)
|
std:: basic_string < char16_t > |
std::u32string
(depuis C++11)
|
std:: basic_string < char32_t > |
Classes de vue de chaîne ( std::string_view etc.) (depuis C++17)
Le modèle de classe std::basic_string_view fournit un objet léger qui offre un accès en lecture seule à une chaîne ou à une partie de chaîne en utilisant une interface similaire à celle de std::basic_string .
Plusieurs spécialisations de std::basic_string_view sont fournies pour les types couramment utilisés :
|
Défini dans l'en-tête
<string_view>
|
|
| Type | Définition |
std::string_view
|
std:: basic_string_view < char > |
std::wstring_view
|
std:: basic_string_view < wchar_t > |
std::u8string_view
(depuis C++20)
|
std:: basic_string_view < char8_t > |
std::u16string_view
|
std:: basic_string_view < char16_t > |
std::u32string_view
|
std:: basic_string_view < char32_t > |
Bibliothèques pertinentes
La bibliothèque de traitement de texte fournit le support pour les localisations, les conversions de chaînes (par exemple std::toupper ), les fonctions de classification de caractères (par exemple std::isspace ), et la reconnaissance d'encodage de texte ( std::text_encoding ).
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 1170 | C++98 | char-like types could be array types | prohibited |
Voir aussi
|
Documentation C
pour
Bibliothèque de chaînes
|