std:: numpunct
|
Definido en el encabezado
<locale>
|
||
|
template
<
class
CharT
>
class numpunct ; |
||
El facet
std::numpunct
encapsula las preferencias de puntuación numérica. Las operaciones de E/S de flujo utilizan
std::numpunct
a través de
std::num_get
y
std::num_put
para analizar la entrada numérica y formatear la salida numérica.
Los números que son compatibles con
std::numpunct
tienen el formato descrito a continuación. Aquí
digit
representa la base numérica especificada por el valor del argumento
fmtflags
,
thousands-sep
y
decimal-point
son los resultados de las funciones
thousands_sep()
y
decimal_point()
respectivamente.
El formato de los valores enteros es el siguiente:
integer ::= [signo] unidades signo ::= masmenos masmenos ::= '+' | '-' unidades ::= digitos [separador-miles unidades] digitos ::= digito [digitos]
El número de dígitos entre los
thousand-sep
s (tamaño máximo de
digits
) se especifica mediante el resultado de
grouping()
.
El formato de los valores de punto flotante es el siguiente:
floatval ::= [signo] unidades [punto-decimal [dígitos]] [e [signo] dígitos] |
[signo] punto-decimal dígitos [e [signo] dígitos]
e ::= 'e' | 'E'
Diagrama de herencia
Contenidos |
Especializaciones
La biblioteca estándar garantiza proporcionar las siguientes especializaciones (están requeridas para ser implementadas por cualquier objeto locale ):
|
Definido en el encabezado
<locale>
|
|
| std :: numpunct < char > | proporciona equivalentes de las preferencias de la configuración regional "C" |
| std :: numpunct < wchar_t > | proporciona equivalentes de caracteres anchos de las preferencias de la configuración regional "C" |
Tipos anidados
| Tipo | Definición |
char_type
|
CharT
|
string_type
|
std:: basic_string < CharT > |
Miembros de datos
| Miembro | Descripción |
std::locale::id
id
[static]
|
el identificador del facet |
Funciones miembro
construye un nuevo facet
numpunct
(función miembro pública) |
|
destruye un facet
numpunct
(función miembro protegida) |
|
invoca
do_decimal_point
(función miembro pública) |
|
invoca
do_thousands_sep
(función miembro pública) |
|
invoca
do_grouping
(función miembro pública) |
|
invoca
do_truename
o
do_falsename
(función miembro pública) |
Funciones miembro protegidas
|
[virtual]
|
proporciona el carácter a utilizar como punto decimal
(función miembro protegida virtual) |
|
[virtual]
|
proporciona el carácter a utilizar como separador de miles
(función miembro protegida virtual) |
|
[virtual]
|
proporciona los números de dígitos entre cada par de separadores de miles
(función miembro protegida virtual) |
|
[virtual]
|
proporciona la cadena a utilizar como nombre del valor booleano
true
y
false
(función miembro protegida virtual) |
Ejemplo
El siguiente ejemplo cambia las representaciones de cadena de true y 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'; }
Salida:
default locale: true, false locale with modified numpunct: vrai, faux
Informes de defectos
Los siguientes informes de defectos que modifican el comportamiento se aplicaron retroactivamente a los estándares de C++ publicados anteriormente.
| DR | Aplicado a | Comportamiento publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 338 | C++98 |
el token
sign
permitía un espacio en blanco opcional después de
+
o
-
|
se eliminó el espacio en blanco |
Véase también
|
crea una faceta numpunct para la configuración regional nombrada
(plantilla de clase) |