Compartir a través de


time_put (Clase)

La plantilla de clase describe un objeto que puede actuar como una faceta de la configuración regional para controlar las conversiones de valores de hora en secuencias de tipo CharType.

Sintaxis

template <class CharType,
    class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;

Parámetros

CharType
Tipo usado dentro de un programa para codificar caracteres.

OutputIterator
El tipo de iterador en el que las funciones time put escriben sus resultados.

Comentarios

Como ocurre con cualquier faceta de configuración regional, el identificador de objeto estático tiene un valor almacenado inicial de cero. El primer intento de acceso a su valor almacenado almacena un valor positivo único en id.

Constructores

Constructor Descripción
time_put Constructor para los objetos de tipo time_put.

Typedefs

Nombre de tipo Descripción
char_type Tipo que se usa para describir un carácter empleado por una configuración regional.
iter_type Tipo que describe un iterador de salida.

Funciones miembro

Función de miembro Descripción
do_put Una función virtual que genera información de hora y fecha como una secuencia de CharTypes.
put Genera información de hora y fecha como una secuencia de CharTypes.

Requisitos

Encabezado:<locale>

Espacio de nombres: std

time_put::char_type

Tipo que se usa para describir un carácter empleado por una configuración regional.

typedef CharType char_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla CharType.

time_put::d_put

Una función virtual que genera información de hora y fecha como una secuencia de CharTypes.

virtual iter_type do_put(
    iter_type next,
    ios_base& _Iosbase,
    const tm* _Pt,
    char _Fmt,
    char _Mod = 0) const;

Parámetros

siguiente
Un iterador de salida en el que se va a insertar la secuencia de caracteres que representan la fecha y la hora.

_Iosbase
Sin usar.

_Pt
La información de fecha y hora que se va a representar.

_Fmt
El formato de la salida. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

_Mod
Un modificador para el formato. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

Valor devuelto

Un iterador a la primera posición después del último elemento insertado.

Comentarios

La función miembro virtual protegida genera elementos secuenciales, empezando por next a partir de los valores de hora almacenados en el objeto * _Pt, del tipo tm. La función devuelve un iterador que designa el lugar siguiente para insertar un elemento más allá de la salida generada.

La salida se genera por las mismas reglas usadas por strftime, con un último argumento de _Pt, para generar una serie de elementos char en una matriz. Se supone que cada uno de estos elementos char se asigna a un elemento equivalente de tipo CharType mediante una asignación simple, uno a uno. Si _Mod es igual a cero, el formato eficaz es "%F", donde F es reemplazado por _Fmt. De lo contrario, el formato eficaz es "%MF", donde M es reemplazado por _Mod.

Ejemplo

Vea el ejemplo de put, que llama a do_put.

time_put::iter_type

Tipo que describe un iterador de salida.

typedef OutputIterator iter_type;

Comentarios

El tipo es un sinónimo del parámetro de plantilla OutputIterator.

time_put::p ut

Genera información de hora y fecha como una secuencia de CharTypes.

iter_type put(iter_type next,
    ios_base& _Iosbase,
    char_type _Fill,
    const tm* _Pt,
    char _Fmt,
    char _Mod = 0) const;

iter_type put(iter_type next,
    ios_base& _Iosbase,
    char_type _Fill,
    const tm* _Pt,
    const CharType* first,
    const CharType* last) const;

Parámetros

siguiente
Un iterador de salida en el que se va a insertar la secuencia de caracteres que representan la fecha y la hora.

_Iosbase
Sin usar.

_Fill
El carácter de tipo CharType usado para el espaciado.

_Pt
La información de fecha y hora que se va a representar.

_Fmt
El formato de la salida. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

_Mod
Un modificador para el formato. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

first
El principio de la cadena de formato para la salida. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

last
El final de la cadena de formato para la salida. Vea strftime, wcsftime, _strftime_l, _wcsftime_l para conocer los valores válidos.

Valor devuelto

Un iterador a la primera posición después del último elemento insertado.

Comentarios

La primera función miembro devuelve do_put(next, _Iosbase, _Fill, _Pt, _Fmt, _Mod). La segunda función miembro copia en * next ++ cualquier elemento en el intervalo [ first, last) que no sea un porcentaje (%). Para un porcentaje seguido de un carácter C en el intervalo [ first, last), la función evalúa en su lugar next = do_put( next, _Iosbase, _Fill, _Pt, C, 0) y omite el C pasado. Sin embargo, si C es un carácter calificador del conjunto EOQ#, seguido de un carácter C2 en el intervalo [ first, last), la función evalúa en su lugar next = do_put( next, _Iosbase, _Fill, _Pt, C2, C) y omite el C2 pasado.

Ejemplo

// time_put_put.cpp
// compile with: /EHsc
#include <locale>
#include <iostream>
#include <sstream>
#include <time.h>
using namespace std;
int main( )
{
   locale loc;
   basic_stringstream<char> pszPutI;
   ios_base::iostate st = 0;
   struct tm t;
   memset( &t, 0, sizeof( struct tm ) );

   t.tm_hour = 5;
   t.tm_min = 30;
   t.tm_sec = 40;
   t.tm_year = 00;
   t.tm_mday = 4;
   t.tm_mon = 6;

   pszPutI.imbue( loc );
   char *pattern = "x: %X %x";
   use_facet <time_put <char> >
   (loc).put(basic_ostream<char>::_Iter(pszPutI.rdbuf( )),
          pszPutI, ' ', &t, pattern, pattern+strlen(pattern));

      cout << "num_put( ) = " << pszPutI.rdbuf( )->str( ) << endl;

      char strftimebuf[255];
      strftime(&strftimebuf[0], 255, pattern, &t);
      cout << "strftime( ) = " << &strftimebuf[0] << endl;
}
num_put( ) = x: 05:30:40 07/04/00
strftime( ) = x: 05:30:40 07/04/00

time_put::time_put

Constructor para los objetos de tipo time_put.

explicit time_put(size_t _Refs = 0);

Parámetros

_Refs
Valor entero que se usa para especificar el tipo de administración de memoria del objeto.

Comentarios

Los valores posibles del parámetro _Refs y su importancia son:

  • 0: la vigencia del objeto se administra mediante las configuraciones regionales que lo contienen.

  • 1: la vigencia del objeto se debe administrar de manera manual.

  • > 1: estos valores no están definidos.

El constructor inicializa su objeto base con locale::facet(_Refs).

Consulte también

<locale>
time_base (Clase)
Seguridad para subprocesos en la biblioteca estándar de C++