Namespaces
Variants

std:: numpunct

From cppreference.net
Definiert in Header <locale>
template < class CharT >
class numpunct ;

Der Facette std::numpunct kapselt numerische Interpunktionspräferenzen. Stream-I/O-Operationen verwenden std::numpunct über std::num_get und std::num_put zum Parsen numerischer Eingaben und Formatieren numerischer Ausgaben.

Die von std::numpunct unterstützten Zahlen haben das nachfolgend beschriebene Format. Hier repräsentiert digit das durch den fmtflags -Argumentwert festgelegte Radix-Set, thousands-sep und decimal-point sind die Ergebnisse der Funktionen thousands_sep() bzw. decimal_point() .

Das Format von Ganzzahlwerten ist wie folgt:

integer     ::= [sign] units
sign        ::= plusminus
plusminus   ::= '+' | '-'
units       ::= digits [thousands-sep units]
digits      ::= digit [digits]

Die Anzahl der Ziffern zwischen den thousand-sep s (maximale Größe von digits ) wird durch das Ergebnis von grouping() spezifiziert.

Das Format von Gleitkommawerten ist wie folgt:

floatval    ::= [sign] units [decimal-point [digits]] [e [sign] digits] |
                [sign]        decimal-point  digits   [e [sign] digits]
e           ::= 'e' | 'E'
cpp/locale/locale/facet std-numpunct-inheritance.svg

Vererbungsdiagramm

Inhaltsverzeichnis

Spezialisierungen

Die Standardbibliothek garantiert die Bereitstellung der folgenden Spezialisierungen (sie sind von jedem Locale-Objekt implementiert werden müssen ):

Definiert im Header <locale>
std :: numpunct < char > stellt Äquivalente der "C"-Locale-Einstellungen bereit
std :: numpunct < wchar_t > stellt Wide-Character-Äquivalente der "C"-Locale-Einstellungen bereit

Verschachtelte Typen

Typ Definition
char_type CharT
string_type std:: basic_string < CharT >

Datenmitglieder

Mitglied Beschreibung
std::locale::id id [static] der Bezeichner des Facet

Memberfunktionen

Konstruiert einen neuen numpunct Facette
(öffentliche Elementfunktion)
zerstört einen numpunct Facette
(geschützte Elementfunktion)
ruft do_decimal_point auf
(öffentliche Elementfunktion)
ruft do_thousands_sep auf
(öffentliche Elementfunktion)
ruft do_grouping auf
(öffentliche Elementfunktion)
ruft do_truename oder do_falsename auf
(öffentliche Elementfunktion)

Geschützte Memberfunktionen

stellt das als Dezimaltrennzeichen zu verwendende Zeichen bereit
(virtuelle geschützte Elementfunktion)
stellt das als Tausendertrennzeichen zu verwendende Zeichen bereit
(virtuelle geschützte Elementfunktion)
[virtual]
stellt die Anzahl der Ziffern zwischen jedem Paar von Tausendertrennzeichen bereit
(virtuelle geschützte Elementfunktion)
stellt die als Namen der booleschen Werte true und false zu verwendenden Zeichenketten bereit
(virtuelle geschützte Elementfunktion)

Beispiel

Das folgende Beispiel ändert die Zeichenkettenrepräsentationen von true und 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';
}

Ausgabe:

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

Fehlerberichte

Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.

DR Angewendet auf Verhalten wie veröffentlicht Korrektes Verhalten
LWG 338 C++98 das sign Token erlaubte ein optionales Leerzeichen nach + oder - entfernte das Leerzeichen

Siehe auch

Erstellt einen numpunct-Facet für die benannte Locale
(Klassen-Template)