std:: ctype_byname
|
Défini dans l'en-tête
<locale>
|
||
|
template
<
class
CharT
>
class ctype_byname : public std:: ctype < CharT > ; |
||
std::ctype_byname
est une facette
std::ctype
qui encapsule les règles de classification des caractères de la locale spécifiée lors de sa construction.
Table des matières |
Spécialisations
La bibliothèque standard garantit la fourniture des spécialisations suivantes :
|
Défini dans l'en-tête
<locale>
|
|
| std :: ctype_byname < char > | fournit la classification des caractères étroits (utilise une table de consultation pour la classification des caractères) |
| std :: ctype_byname < wchar_t > | fournit la classification des caractères larges |
Types imbriqués
| Type | Définition |
mask
|
typename std:: ctype < CharT > :: mask |
Fonctions membres
|
(constructeur)
|
construit une nouvelle facette
ctype_byname
(fonction membre publique) |
|
(destructeur)
|
détruit une facette
ctype_byname
(fonction membre protégée) |
std::ctype_byname:: ctype_byname
|
explicit
ctype_byname
(
const
char
*
name,
std::
size_t
refs
=
0
)
;
|
||
|
explicit
ctype_byname
(
const
std::
string
&
name,
std::
size_t
refs
=
0
)
;
|
(depuis C++11) | |
Construit un nouveau facet
std::ctype_byname
pour une locale avec
name
.
refs est utilisé pour la gestion des ressources : si refs == 0 , l'implémentation détruit le facet lorsque le dernier objet std::locale le contenant est détruit. Sinon, l'objet n'est pas détruit.
Paramètres
| name | - | le nom de la locale |
| refs | - | le nombre de références liées au facet |
std::ctype_byname:: ~ctype_byname
|
protected
:
~ctype_byname ( ) ; |
||
Détruit le facet.
Hérité de
std::
ctype
<CharT>
(seulement si
CharT
n'est pas
char
)
Types imbriqués
| Type | Définition |
char_type
|
CharT
|
Membres de données
| Membre | Description |
std::locale::id
id
[static]
|
l'identifiant de la facette |
Fonctions membres
invoque
do_is
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_scan_is
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_scan_not
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_toupper
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_tolower
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_widen
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_narrow
(fonction membre publique de
std::ctype<CharT>
)
|
Fonctions membres protégées
|
[virtual]
|
convertit un ou plusieurs caractères en majuscules
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères en minuscules
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères de
char
vers
CharT
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères de
CharT
vers
char
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
classe un caractère ou une séquence de caractères
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
localise le premier caractère d'une séquence qui correspond à une classification donnée
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
localise le premier caractère d'une séquence qui ne correspond pas à une classification donnée
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
Hérité de
std::
ctype<char>
(uniquement si
CharT
est
char
)
Types imbriqués
| Type | Définition |
char_type
|
char |
Membres de données
| Membre | Description |
std::locale::id
id
[static]
|
l'identifiant de la facette |
const
std::
size_t
table_size
[static]
|
taille de la table de classification, au moins 256 |
Fonctions membres
|
obtient la table de classification des caractères
(fonction membre publique de
std::ctype
<char>
)
|
|
|
[static]
|
obtient la table de classification des caractères du locale "C"
(fonction membre publique statique de
std::ctype
<char>
)
|
|
classe un caractère ou une séquence de caractères, en utilisant la table de classification
(fonction membre publique de
std::ctype
<char>
)
|
|
|
localise le premier caractère d'une séquence qui correspond à une classification donnée, en utilisant la table de classification
(fonction membre publique de
std::ctype
<char>
)
|
|
|
localise le premier caractère d'une séquence qui ne correspond pas à une classification donnée, en utilisant la table de classification
(fonction membre publique de
std::ctype
<char>
)
|
|
invoque
do_toupper
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_tolower
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_widen
(fonction membre publique de
std::ctype<CharT>
)
|
|
invoque
do_narrow
(fonction membre publique de
std::ctype<CharT>
)
|
Fonctions membres protégées
|
[virtual]
|
convertit un ou plusieurs caractères en majuscules
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères en minuscules
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères de
char
vers
CharT
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
|
[virtual]
|
convertit un ou plusieurs caractères de
CharT
vers
char
(fonction membre protégée virtuelle de
std::ctype<CharT>
)
|
Hérité de std:: ctype_base
Types imbriqués
| Type | Définition |
mask
|
type non spécifié BitmaskType (énumération, type entier ou bitset) |
Constantes membres
|
space
[static]
|
la valeur de
mask
identifiant la classification des caractères d'espacement
(constante membre publique statique) |
|
print
[static]
|
la valeur de
mask
identifiant la classification des caractères imprimables
(constante membre publique statique) |
|
cntrl
[static]
|
la valeur de
mask
identifiant la classification des caractères de contrôle
(constante membre publique statique) |
|
upper
[static]
|
la valeur de
mask
identifiant la classification des caractères majuscules
(constante membre publique statique) |
|
lower
[static]
|
la valeur de
mask
identifiant la classification des caractères minuscules
(constante membre publique statique) |
|
alpha
[static]
|
la valeur de
mask
identifiant la classification des caractères alphabétiques
(constante membre publique statique) |
|
digit
[static]
|
la valeur de
mask
identifiant la classification des caractères chiffres
(constante membre publique statique) |
|
punct
[static]
|
la valeur de
mask
identifiant la classification des caractères de ponctuation
(constante membre publique statique) |
|
xdigit
[static]
|
la valeur de
mask
identifiant la classification des caractères chiffres hexadécimaux
(constante membre publique statique) |
|
blank
[static]
(C++11)
|
la valeur de
mask
identifiant la classification des caractères blancs
(constante membre publique statique) |
|
alnum
[static]
|
alpha
|
digit
(constante membre publique statique) |
|
graph
[static]
|
alnum
|
punct
(constante membre publique statique) |
Notes
std :: ctype_byname < char > était incorrectement déclaré comme une spécialisation explicite dans la synopsis de <locale> , et cette déclaration a été supprimée par la résolution de LWG issue 1298 , mais elle reste une spécialisation requise, tout comme std :: ctype_byname < wchar_t > .
Exemple
#include <iostream> #include <locale> int main() { wchar_t c = L'\u00de'; // lettre majuscule thorn std::locale loc("C"); std::cout << "isupper('Þ', locale C) a retourné " << std::boolalpha << std::isupper(c, loc) << '\n'; loc = std::locale(loc, new std::ctype_byname<wchar_t>("en_US.utf8")); std::cout << "isupper('Þ', locale C avec ctype Unicode) a retourné " << std::boolalpha << std::isupper(c, loc) << '\n'; }
Sortie :
isupper('Þ', locale C) a retourné false
isupper('Þ', locale C avec ctype Unicode) a retourné true
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 | Applicable à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 16 | C++98 |
la définition de la spécialisation explicite
std
::
ctype_byname
<
char
>
spécifiait incorrectement le nom et la liste de paramètres de
do_narrow
|
corrigé |
| LWG 616 | C++98 |
le désambiguïsateur
typename
était manquant dans la définition de
mask
|
ajouté |
Voir aussi
|
définit les tables de classification des caractères
(modèle de classe) |
|
|
spécialisation de
std::ctype
pour le type
char
(spécialisation de modèle de classe) |