num_put::do_put
Una función virtual que se llama a para convertir un número en una secuencia de s de CharTypeque representa el número con formato para una configuración regional.
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
bool _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
long _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
unsigned long _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
double _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
long double _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const void * _Val
) const;
virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const long long _Val
) const; virtual iter_type do_put(
iter_type _Dest,
ios_base& _Iosbase,
_Elem _Fill,
const unsigned long long _Val
) const;
Parámetros
_Next
Un iterador que dirige el primer elemento de cadena inline._Iosbase
Especifica la secuencia que contiene la configuración regional con la faceta de numpunct utilizada para puntuar la salida y marca para dar formato al resultado._Fill
Un carácter que se utiliza para agregar espacios._Val
El número o tipo booleano que debe ser generado.
Valor devuelto
Un iterador de salida las direcciones que la posición una más allá del último elemento generó.
Comentarios
La primera función protegida miembro virtual representa elementos secuenciales que comienzan en _Next para presentar un campo entero de salida del valor de _Val. La función devuelve un iterador que señala el lugar siguiente para insertar un elemento más allá del campo generado de salida entero.
El campo entero de salida generan las mismas reglas que las funciones de impresión para generar una serie de elementos de char en un archivo. Cada uno de estos elementos char es supone para asignar un elemento equivalente de CharType escrito por un simple, asignación unívoca. En una función de impresión completa un campo con o espacios o el dígito 0, sin embargo, do_put en su lugar utiliza fill. Se determina la especificación de conversión equivalente de impresión como sigue:
Si iosbase. == &ios_base::Octdemarcadoresios_base::basefield , la especificación de conversión es lo.
Si == &ios_base::hexadecimalde iosbase.flagsios_base::basefield , la especificación de conversión es lx.
Si no, la especificación de conversión es ld.
Si iosbase.ancho es distinto de cero, un ancho de campo de este valor work item. La función llama iosbase.width(0) para restablecer el ancho de campo en cero.
El relleno sólo aparece si el número mínimo de n elementos necesario especificar el campo de salida es menor que iosbase.ancho. Tal relleno consta una secuencia de N – width copies of fill. El relleno aparece como sigue:
Si iosbase. == &ios_base::izquierdodeflagsios_base::adjustfield , marcador – work item. (El relleno se produce después de que el texto generado.)
Si == &ios_base::internode iosbase.flagsios_base::adjustfield , marcador 0 work item. (Para un campo numérico de salida, el relleno aparece en el seguimiento de las funciones de impresión con 0.)
Si no, no se work item confirmación adicional. (El relleno se produce antes de la secuencia generada.)
Finalmente:
Si iosbase.flags &ios_base::showpos es distinto de cero, el marcador + se anteponen a la especificación de conversión.
Si iosbase.flags & ios_base::showbase es distinto de cero, el marcador # se anteponen a la especificación de conversión.
El formato de un campo entero de salida se resuelve adicional por faceta de configuración regional fac devuelto por la llamada use_facet <numpunct<Elem>(iosbase.getloc). De manera específica:
fac.el agrupar determina cómo los dígitos se agrupan a la izquierda del separador decimal
fac.thousands_sep determina la secuencia que separa los grupos de dígitos a la izquierda del separador decimal
Si no se impone ninguna restricción de agrupación por fac.grouping (el primer elemento tiene el valor CHAR_MAX), entonces instancias de fac.thousands_sep se genera en el campo de salida. Si no, se insertan los separadores después de la conversión de impresión aparece.
La segunda función protegida miembro virtual:
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, unsigned long _Val) const;
se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lu.
La tercera función protegida miembro virtual:
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, double _Val) const;
se comporta igual que el primero, salvo que genera un campo flotante de salida del valor de val.fac.decimal_point determina la secuencia que separa los dígitos integrales de los dígitos de fracción. Se determina la especificación de conversión equivalente de impresión como sigue:
Si iosbase. == &ios_base::fijodeflagsios_base::floatfield , la especificación de conversión es lf.
Si iosbase. == &ios_base::científicodeflagsios_base::floatfield , la especificación de conversión es le. Si iosbase.flags &ios_base::mayúsculas es distinto de cero, h se reemplaza con E.
Si no, la especificación de conversión es lg. Si iosbase.flags &ios_base::uppercase es distinto de cero, d se reemplaza con G.
Si iosbase.flags &ios_base::fixed es distinto de cero o si iosbase.precisión es mayor que cero, una precisión con el valor iosbase.precision se anteponen a la especificación de conversión. Cualquier relleno se comporta igual que en un campo entero de salida. El carácter de relleno es fill. Finalmente:
Si iosbase.flags &ios_base::showpos es distinto de cero, el marcador + se anteponen a la especificación de conversión.
Si iosbase.flags &ios_base::showpoint es distinto de cero, el marcador # se anteponen a la especificación de conversión.
La cuarta función protegida miembro virtual:
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, long double _Val) const;
se comportará el tercero, salvo que reemplazan el calificador l en la especificación de conversión con L.
La quinta función protegida miembro virtual:
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, const void *_Val) const;
se comportará el primero, salvo que la especificación de conversión es p###, más cualquier calificador necesario para especificar el relleno.
La sexta función protegida miembro virtual:
virtual iter_type do_put(iter_type _Next, ios_base& _Iosbase,
CharType _Fill, bool _Val) const;
se comporta igual que el primero, salvo que genera un campo booleano de salida de _Val.
Un campo booleano de salida toma uno de dos formas. Si iosbase.flags &ios_base::boolalpha es false, el miembro que devuelve la función do_put(_Next, _Iosbase, _Fill, (long)_Val), que normalmente genera una secuencia generada de 0 (para false) o 1 (para true). Si no, la secuencia generada es cualquier fac.falsename) (para false), o fac.truename (para true).
La séptima función protegida miembro virtual:
virtual iter_type do_put(iter_type next, ios_base& iosbase,
Elem fill, long long val) const;
se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con lld.
La octava función protegida miembro virtual:
virtual iter_type do_put(iter_type next, ios_base& iosbase,
Elem fill, unsigned long long val) const;
se comporta igual que el primero, salvo que reemplaza una especificación de conversión de ld con llu.
Ejemplo
Vea el ejemplo para título, que llama a do_put.
Requisitos
configuración regional <deEncabezado: >
Espacio de nombres: std