Condividi tramite


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_putnext invece ( next, _Fill_Iosbase, _Pt, C2C) e ignora il passato C2di .

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++)