Partilhar via


time_put Classe

O modelo de classe descreve um objeto que pode servir como uma faceta de localidade para controlar conversões de valores de tempo para 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 dentro de um programa para codificar caracteres.

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

Observações

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

Construtores

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

Typedefs (definições de tipos)

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 produz informações de data e hora como uma sequência de CharTypes.
colocar Produz informações de data e hora como uma sequência de CharTypes.

Requerimentos

Cabeçalho:<localidade>

Espaço de nomes: std

time_put::char_type

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

typedef CharType char_type;

Observações

O tipo é um sinônimo para o parâmetro de modelo CharType.

time_put::d o_put

Uma função virtual que produz informações de data e hora 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

seguinte
Um iterador de saída onde a sequência de caracteres que representam a hora e a data deve ser inserida.

_Iosbase
Não utilizado.

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

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

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

Valor de retorno

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

Observações

A função de membro virtual protegido gera elementos sequenciais a partir next de valores de tempo armazenados no objeto * _Pt, do tipo tm. A função retorna um iterador designando o próximo local para inserir um elemento além da saída gerada.

A saída é gerada pelas mesmas regras usadas pela strftime, com um último argumento de _Pt, para gerar uma série de char elementos em uma matriz. Supõe-se que cada um desses char elementos seja mapeado para um elemento equivalente do tipo CharType por meio de um mapeamento simples e um-para-um. Se _Mod for igual a zero, o formato efetivo é "%F", onde F é substituído por _Fmt. Caso contrário, o formato efetivo é "%MF", onde M é substituído por _Mod.

Exemplo

Veja o exemplo para put, que chama do_put.

time_put::iter_type

Um tipo que descreve um iterador de saída.

typedef OutputIterator iter_type;

Observações

O tipo é um sinônimo para o parâmetro de modelo OutputIterator.

time_put::p ut

Produz informações de data e hora 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

seguinte
Um iterador de saída onde a sequência de caracteres que representam a hora e a data 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 produzidas.

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

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

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

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

Valor de retorno

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

Observações

A primeira função de membro retorna do_put(next, _Iosbase, _Fill, _Pt, _Fmt, _Mod). A segunda função de membro copia para * next ++ qualquer elemento no intervalo [ first, last) diferente de uma porcentagem (%). Para uma porcentagem seguida por um caractere C no intervalo [ first, last), a função em vez disso avalianext = do_put (next, _Iosbase, _Fill, _Pt, C, 0) e ignora C. Se, no entanto, C é um caractere qualificador do conjunto EOQ#, seguido por um caractere C2 no intervalo [ first, last), a função em vez disso avalia next = do_put(next, _Iosbase, _Fill, _Pt, C2, C) e ignora .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 para o objeto.

Observações

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: Estes valores não estão definidos.

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

Ver também

<localidade>
time_base Classe
segurança de threads na biblioteca padrão C++