std::numpunct
| Definido en el archivo de encabezado <locale>
|
||
template< class CharT > class numpunct; |
||
La faceta std::numpunct encapsula las preferencias de puntuación numérica. Las operaciones de E/S de flujo utilizan std::numpunct a 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 que se describe a continuación. Aquí digit representa el conjunto de bases especificado por el valor del argumento fmtflags, sep-de-miles y punto-decimal son los resultados de las funciones thousands_sep() y decimal_point() respectivamente. El formato de los valores enteros es el siguiente:
entero ::= [signo] unidades
signo ::= másmenos
másmenos ::= '+' | '-'
unidades ::= dígitos [sep-de-miles unidades]
dígitos ::= digit [dígitos]
El número de dígitos entre los sep-de-miles (el tamaño máximo de dígitos) se especifica por el resultado de grouping().
El formato de los valores de punto flotante es el siguiente:
valorflotante ::= [signo] unidades [punto-decimal [dígitos]] [e [signo] dígitos] |
[signo] punto-decimal dígitos [e [signo] dígitos]
e ::= 'e' | 'E'
Inheritance diagram
Especializaciones
Se garantiza que la biblioteca estándar proporciona las siguientes especializaciones (cualquier objeto de configuración regional debe implementarlas):
Definido en el archivo de encabezado
<locale> | |
std::numpunct<char>
|
Proporciona equivalentes de las preferencias de configuración regional "C". |
std::numpunct<wchar_t>
|
Proporciona equivalentes de caracteres anchos de las preferencias de configuración regional "C". |
Tipos anidados
| Tipo | Definición |
char_type
|
CharT
|
string_type
|
std::basic_string<CharT>
|
Datos miembro
| Miembro | Descripción |
std::locale::id id [estático]
|
El identificador de la faceta. |
Funciones miembro
construye una nueva faceta numpunct Original: constructs a new numpunct facet The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
destructs una faceta numpunct Original: destructs a numpunct facet The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro protegida) | |
Invoca do_decimal_point Original: invokes do_decimal_point The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
Invoca do_thousands_sep Original: invokes do_thousands_sep The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
Invoca do_grouping Original: invokes do_grouping The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro pública) | |
Invoca do_truename o do_falsename. (función miembro pública) |
Funciones miembro protegidas
[virtual] |
proporciona el carácter que se utiliza como punto decimal Original: provides the character to use as decimal point The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro virtual protegida) |
[virtual] |
proporciona el carácter que se utiliza como separador de miles Original: provides the character to use as thousands separator The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro virtual protegida) |
[virtual] |
proporciona el número de dígitos entre cada par de miles
separadores Original: provides the numbers of digits between each pair of thousands
separators The text has been machine-translated via Google Translate. You can help to correct and verify the translation. Click here for instructions. (función miembro virtual protegida) |
[virtual] |
Proporciona la cadena que se utilizará como nombre del booleano true y false. (función miembro virtual protegida) |
Ejemplo
El siguiente ejemplo cambia las representaciones de cadenas de true y false:
#include <iostream>
#include <locale>
struct spanish_bool : std::numpunct<char>
{
string_type do_truename() const override { return "verdadero"; }
string_type do_falsename() const override { return "falso"; }
};
int main()
{
std::cout << "Configuración regional por defecto: "
<< std::boolalpha << true << ", " << false << '\n';
std::cout.imbue(std::locale(std::cout.getloc(), new spanish_bool));
std::cout << "Configuración regional con numpunct modificado: "
<< std::boolalpha << true << ", " << false << '\n';
}
Salida:
Configuración regional por defecto: true, false
Configuración regional con numpunct modificado: verdadero, falso
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 338 | C++98 | El token signo admití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 denominada. (plantilla de clase) |