Classe time_put

O modelo de classe descreve um objeto que pode servir como uma faceta de localidade para controlar conversões de valores de tempo em sequências do tipo CharType.

Sintaxe

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

Parâmetros

CharType
O tipo usado em um programa para codificar caracteres.

OutputIterator
O tipo de iterador no qual as funções put de tempo gravam sua saída.

Comentários

Como qualquer faceta de localidade, a ID de objeto estático tem um valor armazenado inicial de zero. A primeira tentativa de acessar seu valor armazenado armazena um valor positivo exclusivo na id.

Construtores

Construtor Descrição
time_put O construtor para objetos do tipo time_put.

Typedefs

Nome do tipo Descrição
char_type Um tipo que é usado para descrever um caractere usado por uma localidade.
iter_type Um tipo que descreve um iterador de saída.

Funções de membro

Função de membro Descrição
do_put Uma função virtual que gera informações de hora e data como uma sequência de CharTypes.
put Gera informações de hora e data como uma sequência de CharTypes.

Requisitos

Cabeçalho:<locale>

Namespace: std

time_put::char_type

Um tipo que é usado para descrever um caractere usado por uma localidade.

typedef CharType char_type;

Comentários

O tipo é um sinônimo do parâmetro de modeloCharType.

time_put::d o_put

Uma função virtual que gera informações de hora e data como uma sequência de CharTypes.

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

Parâmetros

avançar
Um iterador de saída no qual a sequência de caracteres que representa a data e hora deve ser inserida.

_Iosbase
Não utilizado.

_Pt
As informações de data e hora que estão sendo geradas.

_Fmt
O formato da saída. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

_Mod
Um modificador do formato. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

Valor de retorno

Um iterador para a primeira posição após o último elemento inserido.

Comentários

A função membro virtual protegida gera elementos sequenciais começando em next de valores de hora armazenados no objeto * _Pt, do tipo tm. A função retorna um iterador que designa o próximo local a inserir um elemento após a saída gerada.

A saída é gerada pelas mesmas regras usadas por strftime, com um último argumento _Ptpara gerar uma série de char em uma matriz. Cada elemento char é considerado mapeado para um elemento equivalente do tipo CharType por um mapeamento um para um simples. Se _Mod for igual a zero, o formato efetivo será “%F”, em que F é substituído por _Fmt. Caso contrário, o formato efetivo será “%MF”, em que M é substituído por _Mod.

Exemplo

Consulte o exemplo de put, que chama do_put.

time_put::iter_type

Um tipo que descreve um iterador de saída.

typedef OutputIterator iter_type;

Comentários

O tipo é um sinônimo do parâmetro de modeloOutputIterator.

time_put::p ut

Gera informações de hora e data como uma sequência 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

avançar
Um iterador de saída no qual a sequência de caracteres que representa a data e hora deve ser inserida.

_Iosbase
Não utilizado.

_Fill
O caractere do tipo CharType usado para espaçamento.

_Pt
As informações de data e hora que estão sendo geradas.

_Fmt
O formato da saída. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

_Mod
Um modificador do formato. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

first
O início da cadeia de caracteres de formatação da saída. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

last
O final da cadeia de caracteres de formatação da saída. Consulte strftime, wcsftime, _strftime_l, _wcsftime_l para obter valores válidos.

Valor de retorno

Um iterador para a primeira posição após o último elemento inserido.

Comentários

A primeira função membro retorna do_put(next, _Iosbase, _Fill, _Pt, _Fmt, _Mod). A segunda função membro copia para * next ++ qualquer elemento no intervalo (first, last) que não seja uma porcentagem (%). Para uma porcentagem seguida de um caractere C no intervalo (first, last), a função, em vez disso, avalia next = do_put (next, _Iosbase, _Fill, _Pt, C, 0) e ignora C. Se, no entanto, C for um caractere qualificador do conjunto EOQ#, seguido por um caractere C2 no intervalo (first, last), a função, em vez disso, avaliará next = do_put ( next, _Iosbase, _Fill, _Pt, C2C) e ignorará C2.

Exemplo

// 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

Construtor para objetos do tipo time_put.

explicit time_put(size_t _Refs = 0);

Parâmetros

_Refs
Valor inteiro usado para especificar o tipo de gerenciamento de memória do objeto.

Comentários

Os valores possíveis para o parâmetro _Refs e sua significância são:

  • 0: o tempo de vida do objeto é gerenciado pelas localidades que o contêm.

  • 1: o tempo de vida do objeto deve ser gerenciado manualmente.

  • > 1: esses valores não estão definidos.

O construtor inicializa seu objeto base com locale::facet(_Refs).

Confira também

<locale>
Classe time_base
Acesso Thread-Safe na Biblioteca Padrão C++