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 CharType s. |
put | Gera informações de hora e data como uma sequência de CharType s. |
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 CharType
s.
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 CharType
s.
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
, C2
C) 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++