Namespaces
Variants

std:: numpunct

From cppreference.net
Défini dans l'en-tête <locale>
template < class CharT >
class numpunct ;

Le facet std::numpunct encapsule les préférences de ponctuation numérique. Les opérations de flux d'E/S utilisent std::numpunct via std::num_get et std::num_put pour l'analyse des entrées numériques et le formatage des sorties numériques.

Les nombres pris en charge par std::numpunct ont le format décrit ci-dessous. Ici, digit représente la base spécifiée par la valeur de l'argument fmtflags , thousands-sep et decimal-point sont respectivement les résultats des fonctions thousands_sep() et decimal_point() .

Le format des valeurs entières est le suivant :

integer     ::= [signe] unités
signe       ::= plusmoins
plusmoins   ::= '+' | '-'
unités      ::= chiffres [séparateur-milliers unités]
chiffres    ::= chiffre [chiffres]

Le nombre de chiffres entre les thousand-sep (taille maximale des digits ) est spécifié par le résultat de grouping() .

Le format des valeurs à virgule flottante est le suivant :

floatval    ::= [signe] unités [point-décimal [chiffres]] [e [signe] chiffres] |
                [signe]        point-décimal  chiffres   [e [signe] chiffres]
e           ::= 'e' | 'E'
cpp/locale/locale/facet std-numpunct-inheritance.svg

Diagramme d'héritage

Table des matières

Spécialisations

La bibliothèque standard garantit la fourniture des spécialisations suivantes (elles sont requises pour être implémentées par tout objet locale ):

Défini dans l'en-tête <locale>
std :: numpunct < char > fournit les équivalents des préférences de locale "C"
std :: numpunct < wchar_t > fournit les équivalents en caractères larges des préférences de locale "C"

Types imbriqués

Type Définition
char_type CharT
string_type std:: basic_string < CharT >

Membres de données

Membre Description
std::locale::id id [static] l'identifiant de la facette

Fonctions membres

construit un nouveau numpunct facet
(fonction membre publique)
détruit un numpunct facet
(fonction membre protégée)
invoque do_decimal_point
(fonction membre publique)
invoque do_thousands_sep
(fonction membre publique)
invoque do_grouping
(fonction membre publique)
invoque do_truename ou do_falsename
(fonction membre publique)

Fonctions membres protégées

fournit le caractère à utiliser comme séparateur décimal
(fonction membre protégée virtuelle)
fournit le caractère à utiliser comme séparateur de milliers
(fonction membre protégée virtuelle)
[virtual]
fournit le nombre de chiffres entre chaque paire de séparateurs de milliers
(fonction membre protégée virtuelle)
fournit la chaîne à utiliser comme nom pour les valeurs booléennes true et false
(fonction membre protégée virtuelle)

Exemple

L'exemple suivant modifie les représentations textuelles de true et false :

#include <iostream>
#include <locale>
struct french_bool : std::numpunct<char>
{
    string_type do_truename() const override { return "vrai"; }
    string_type do_falsename() const override { return "faux"; }
};
int main()
{
    std::cout << "default locale: "
              << std::boolalpha << true << ", " << false << '\n';
    std::cout.imbue(std::locale(std::cout.getloc(), new french_bool));
    std::cout << "locale with modified numpunct: "
              << std::boolalpha << true << ", " << false << '\n';
}

Sortie :

default locale: true, false
locale with modified numpunct: vrai, faux

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 338 C++98 le jeton sign autorisait un espace facultatif après + ou - supprimé l'espace

Voir aussi

crée une facette numpunct pour les paramètres régionaux nommés
(modèle de classe)