Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
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.
_Encher
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.
primeiro
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.
último
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 por um caractere C no intervalo [ first, last), a função em vez disso avalia next = do_put(next, , _Iosbase, _Fill, _PtC, 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
<localidade>
Classe time_base
Acesso Thread-Safe na Biblioteca Padrão C++