std:: numpunct
|
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'
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
|
[virtual]
|
fournit le caractère à utiliser comme séparateur décimal
(fonction membre protégée virtuelle) |
|
[virtual]
|
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) |
|
[virtual]
|
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) |