Namespaces
Variants

std:: ctype_byname

From cppreference.net
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> )
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)