time_put-Klasse
Die Klassenvorlage beschreibt ein Objekt, das als Gebietsschema-Facet dienen kann, um Konvertierungen von Zeitwerten in Sequenzen vom Typ CharType
zu steuern.
Syntax
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;
Parameter
CharType
Der Typ, der innerhalb eines Programms verwendet wird, um Zeichen zu codieren.
OutputIterator
Der Typ des Iterators, in den die Time-Put-Funktionen ihre Ausgabe schreiben.
Hinweise
Wie bei jedem Gebietsschemafacet hat die statische Objekt-ID einen anfänglichen gespeicherten Wert von NULL. Beim ersten Versuch, auf den gespeicherten Wert zuzugreifen, wird in id ein eindeutiger positiver Wert gespeichert.
Konstruktoren
Konstruktor | Beschreibung |
---|---|
time_put | Der Konstruktor für Objekte des Typs time_put . |
TypeDefs
Typname | Beschreibung |
---|---|
char_type | Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird. |
iter_type | Ein Typ, der einen Ausgabeiterator beschreibt. |
Memberfunktionen
Memberfunktion | Beschreibung |
---|---|
do_put | Eine virtuelle Funktion, die Zeit- und Datumsinformationen als Sequenz von CharType -Objekten ausgibt. |
put | Gibt Zeit- und Datumsinformationen als Sequenz von CharType -Objekten aus. |
Anforderungen
Header:<locale>
Namespace: std
time_put::char_type
Ein Typ, mit dem ein Zeichen beschrieben wird, das von einem Gebietsschema verwendet wird.
typedef CharType char_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter CharType
dar.
time_put::d o_put
Eine virtuelle Funktion, die Zeit- und Datumsinformationen als Sequenz von CharType
-Objekten ausgibt.
virtual iter_type do_put(
iter_type next,
ios_base& _Iosbase,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
Parameter
Weiter
Ein Ausgabeiterator, in den die Zeichensequenz für Zeit und Datum eingefügt werden soll.
_Iosbase
Nicht verwendet.
_Pt
Die Zeit- und Datumsinformationen, die ausgegeben werden.
_Fmt
Das Format der Ausgabe. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
_Mod
Ein Modifizierer für das Format. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
Rückgabewert
Ein Iterator an die erste Position hinter dem letzten eingefügten Element.
Hinweise
Die virtuelle geschützte Memberfunktion generiert sequenzielle Elemente beginnend next
mit zeitwerten, die im Objekt * _Pt
vom Typ tm
gespeichert sind. Die Funktion gibt einen Iterator zurück, der die nächste Stelle zum Einfügen eines Elements nach der generierten Ausgabe festlegt.
Die Ausgabe wird von den gleichen Regeln generiert, die von strftime
, mit einem letzten Argument von _Pt, zum Generieren einer Reihe von char
Elementen in einem Array verwendet werden. Jedes dieser char
Elemente wird angenommen, um einem entsprechenden Element vom Typ CharType
durch eine einfache 1:1-Zuordnung zuzuordnen. Wenn _Mod gleich Null ist, lautet das effektive Format "%F", wobei F durch _Fmt ersetzt wird. Andernfalls ist das effektive Format "%MF", wobei M durch _Mod ersetzt wird.
Beispiel
Siehe das Beispiel für put, mit dem do_put
aufgerufen wird.
time_put::iter_type
Ein Typ, der einen Ausgabeiterator beschreibt.
typedef OutputIterator iter_type;
Hinweise
Der Type stellt ein Synonym für den Vorlagenparameter OutputIterator
dar.
time_put::p ut
Gibt Zeit- und Datumsinformationen als Sequenz von CharType
-Objekten aus.
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;
Parameter
Weiter
Ein Ausgabeiterator, in den die Zeichensequenz für Zeit und Datum eingefügt werden soll.
_Iosbase
Nicht verwendet.
_Füllen
Das Zeichen des Typs CharType
, der für den Abstand verwendet wird.
_Pt
Die Zeit- und Datumsinformationen, die ausgegeben werden.
_Fmt
Das Format der Ausgabe. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
_Mod
Ein Modifizierer für das Format. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
first
Der Anfang der Formatierungszeichenfolge für die Ausgabe. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
last
Das Ende der Formatierungszeichenfolge für die Ausgabe. Siehe strftime, wcsftime, _strftime_l, _wcsftime_l für gültige Werte.
Rückgabewert
Ein Iterator an die erste Position hinter dem letzten eingefügten Element.
Hinweise
Die erste Memberfunktion gibt do_put(next
, , _Iosbase
, _Fill
, _Pt
, ) _Fmt
_Mod
zurück. Die zweite Memberfunktion kopiert in * next
++ alle Elemente im Intervall [ first
, last
) außer einem Prozentwert (%). Bei einem Prozentwert gefolgt von einem Zeichen C im Intervall [ first
, last
), wertet die Funktion stattdessen next
= do_put
( next
, , _Iosbase
, , _Fill
C_Pt
, 0) aus und überspringt C. Wenn C jedoch ein Qualifiziererzeichen aus dem Satz EOQ# ist, gefolgt von einem Zeichen C2
im Intervall [ first
, last
), wertet die Funktion stattdessendo_put
next
= ( next
, , , _Iosbase
, _Pt
_Fill
, , C2
C) aus und überspringt die Vergangenheit .C2
Beispiel
// 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
Konstruktor für Objekte des Typs time_put
.
explicit time_put(size_t _Refs = 0);
Parameter
_Refs
Integerwert, der zum Angeben des Speicherverwaltungstyps für das Objekt verwendet wird.
Hinweise
Die möglichen Werte für den _Refs Parameter und deren Bedeutung sind:
0: Die Lebensdauer des Objekts wird von den Gebietsschemas verwaltet, in denen es enthalten ist.
1: Die Lebensdauer des Objekts muss manuell verwaltet werden.
> 1: Diese Werte sind nicht definiert.
Der Konstruktor initialisiert sein Basisobjekt mit locale::facet(_Refs).
Siehe auch
<locale>
time_base-Klasse
Threadsicherheit in der C++-Standardbibliothek