Classe time_put
Il modello di classe descrive un oggetto che può fungere da facet delle impostazioni locali per controllare le conversioni di valori temporali in sequenze di tipo CharType
.
Sintassi
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;
Parametri
CharType
Tipo utilizzato all'interno di un programma per codificare i caratteri.
OutputIterator
Tipo di iteratore in cui le funzioni temporali put scrivono il proprio output.
Osservazioni:
Come in qualsiasi facet delle impostazioni locali, l'ID dell'oggetto statico ha un valore archiviato iniziale uguale a zero. Il primo tentativo di accedere a tale valore archiviato consente di archiviare un valore positivo univoco in id.
Costruttori
Costruttore | Descrizione |
---|---|
time_put | Costruttore per oggetti di tipo time_put . |
Typedef
Nome tipo | Descrizione |
---|---|
char_type | Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali. |
iter_type | Tipo che descrive un iteratore di output. |
Funzioni membro
Funzione membro | Descrizione |
---|---|
do_put | Funzione virtuale che restituisce informazioni sulla data e l'ora come sequenza di CharType . |
put | Restituisce informazioni sulla data e l'ora come sequenza di CharType . |
Requisiti
Intestazione:<impostazioni locali>
Spazio dei nomi: std
time_put::char_type
Tipo utilizzato per descrivere un carattere utilizzato dalle impostazioni locali.
typedef CharType char_type;
Osservazioni:
Il tipo è un sinonimo del parametro di modello CharType
.
time_put::d o_put
Funzione virtuale che restituisce informazioni sulla data e l'ora come sequenza di CharType
.
virtual iter_type do_put(
iter_type next,
ios_base& _Iosbase,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
Parametri
next
Iteratore di output in cui deve essere inserita la sequenza di caratteri che rappresenta la data e l'ora.
_Iosbase
Non utilizzato.
_Pt
Informazioni di tipo data e ora da visualizzare in output.
_Fmt
Formato dell'output. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
_Mod
Modificatore del formato. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
Valore restituito
Iteratore alla prima posizione dopo l'ultimo elemento inserito.
Osservazioni:
La funzione membro protetta virtuale genera elementi sequenziali a partire next
dai valori temporali archiviati nell'oggetto * _Pt
, di tipo tm
. La funzione restituisce un iteratore che designa la posizione in cui inserire un elemento immediatamente successiva all'output generato.
L'output viene generato dalle stesse regole usate da strftime
, con un ultimo argomento di _Pt, per generare una serie di char
elementi in una matrice. Ogni elemento di questo char
tipo viene considerato mappato a un elemento equivalente di tipo CharType
tramite un semplice mapping uno-a-uno. Se _Mod è uguale a zero, il formato effettivo è "%F", dove F viene sostituito da _Fmt. In caso contrario, il formato effettivo è "%MF", dove M viene sostituito da _Mod.
Esempio
Vedere l'esempio relativo a put, che chiama do_put
.
time_put::iter_type
Tipo che descrive un iteratore di output.
typedef OutputIterator iter_type;
Osservazioni:
Il tipo è un sinonimo del parametro di modello OutputIterator
.
time_put::p ut
Restituisce informazioni sulla data e l'ora come sequenza di CharType
.
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;
Parametri
next
Iteratore di output in cui deve essere inserita la sequenza di caratteri che rappresenta la data e l'ora.
_Iosbase
Non utilizzato.
_Riempire
Carattere di tipo CharType
utilizzato per la spaziatura.
_Pt
Informazioni di tipo data e ora da visualizzare in output.
_Fmt
Formato dell'output. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
_Mod
Modificatore del formato. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
first
Inizio della stringa di formattazione per l'output. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
last
Fine della stringa di formattazione per l'output. Vedere strftime, wcsftime, strftime_l, wcsftime_l per i valori validi.
Valore restituito
Iteratore alla prima posizione dopo l'ultimo elemento inserito.
Osservazioni:
La prima funzione membro restituisce do_put(next
, _Iosbase
, _Fill
, _Pt
_Fmt
, , ). _Mod
La seconda funzione membro copia in * next
++ qualsiasi elemento nell'intervallo [ first
, last
) diverso da una percentuale (%). Per una percentuale seguita da un carattere C nell'intervallo [ first
, last
), la funzione valutado_put
= next
invece ( next
, _Iosbase
_Fill
, , _Pt
, C, 0) e ignora c. Se, tuttavia, C è un carattere qualificatore dal set EOQ#, seguito da un carattere C2
nell'intervallo [ first
, last
), la funzione valuta = do_put
next
invece ( next
, _Fill
_Iosbase
, _Pt
, C2
C) e ignora il passato C2
di .
Esempio
// 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
Costruttore per oggetti di tipo time_put
.
explicit time_put(size_t _Refs = 0);
Parametri
_Refs
Valore Integer che consente di specificare il tipo di gestione della memoria per l'oggetto.
Osservazioni:
I valori possibili per il parametro _Refs e il loro significato sono:
0: la durata dell'oggetto è gestita dalle impostazioni locali che lo contengono.
1: la durata dell'oggetto deve essere gestita manualmente.
> 1: questi valori non sono definiti.
Il costruttore inizializza l'oggetto di base con locale::facet(_Refs).
Vedi anche
<impostazioni locali>
Classe time_base
Thread Safety in the C++ Standard Library (Sicurezza dei thread nella libreria standard C++)