time_put — Klasa
Szablon klasy opisuje obiekt, który może służyć jako aspekt ustawień regionalnych do kontrolowania konwersji wartości czasu na sekwencje typu CharType
.
Składnia
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;
Parametry
Typ char
Typ używany w programie do kodowania znaków.
OutputIterator
Typ iteratora, do którego funkcje czasu put zapisują swoje dane wyjściowe.
Uwagi
Podobnie jak w przypadku dowolnego zestawu reguł ustawień regionalnych, identyfikator obiektu statycznego ma początkową przechowywaną wartość zero. Pierwsza próba uzyskania dostępu do przechowywanej wartości przechowuje unikatową wartość dodatnią w identyfikatorze.
Konstruktory
Konstruktor | opis |
---|---|
time_put | Konstruktor dla obiektów typu time_put . |
Typedefs
Nazwa typu | opis |
---|---|
char_type | Typ opisujący znak używany przez ustawienie regionalne. |
iter_type | Typ, który opisuje iterator danych wyjściowych. |
Funkcje składowe
Funkcja składowa | opis |
---|---|
do_put | Funkcja wirtualna, która generuje informacje o godzinie i dacie jako sekwencję CharType s. |
kłaść | Generuje informacje o godzinie i dacie jako sekwencję s CharType . |
Wymagania
Nagłówek:<ustawienia regionalne>
Przestrzeń nazw: std
time_put::char_type
Typ opisujący znak używany przez ustawienie regionalne.
typedef CharType char_type;
Uwagi
Typ jest synonimem parametru CharType
szablonu .
time_put::d o_put
Funkcja wirtualna, która generuje informacje o godzinie i dacie jako sekwencję CharType
s.
virtual iter_type do_put(
iter_type next,
ios_base& _Iosbase,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
Parametry
następny
Iterator danych wyjściowych, w którym należy wstawić sekwencję znaków reprezentujących godzinę i datę.
_Iosbase
Nieużywany.
_Pt
Dane wyjściowe informacji o godzinie i dacie.
_Fmt
Format danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
_Mod
Modyfikator formatu. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
Wartość zwracana
Iterator do pierwszej pozycji po wstawieniu ostatniego elementu.
Uwagi
Wirtualna chroniona funkcja składowa generuje sekwencyjne elementy rozpoczynające się next
od wartości czasu przechowywanych w obiekcie * _Pt
, typu tm
. Funkcja zwraca iterator wyznaczający następne miejsce, aby wstawić element poza wygenerowanymi danymi wyjściowymi.
Dane wyjściowe są generowane przez te same reguły używane przez strftime
element , z ostatnim argumentem _Pt do generowania serii char
elementów w tablicy. Zakłada się, że każdy taki char
element jest mapowany na równoważny element typu CharType
za pomocą prostego mapowania jeden do jednego. Jeśli _Mod równa się zero, efektywny format to "%F", gdzie F jest zastępowany przez _Fmt. W przeciwnym razie efektywny format to "%MF", gdzie M jest zastępowany przez _Mod.
Przykład
Zobacz przykład put, który wywołuje metodę do_put
.
time_put::iter_type
Typ, który opisuje iterator danych wyjściowych.
typedef OutputIterator iter_type;
Uwagi
Typ jest synonimem parametru OutputIterator
szablonu .
time_put::p ut
Generuje informacje o godzinie i dacie jako sekwencję s 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;
Parametry
następny
Iterator danych wyjściowych, w którym należy wstawić sekwencję znaków reprezentujących godzinę i datę.
_Iosbase
Nieużywany.
_Wypełnić
Znak typu CharType
używany do odstępów.
_Pt
Dane wyjściowe informacji o godzinie i dacie.
_Fmt
Format danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
_Mod
Modyfikator formatu. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
pierwszy
Początek ciągu formatowania danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
ostatni
Koniec ciągu formatowania danych wyjściowych. Aby uzyskać prawidłowe wartości, zobacz strftime, wcsftime, _strftime_l, _wcsftime_l .
Wartość zwracana
Iterator do pierwszej pozycji po wstawieniu ostatniego elementu.
Uwagi
Pierwsza funkcja składowa zwraca do_put(next
, _Iosbase
, _Fill
, _Pt
, _Fmt
). _Mod
Druga funkcja składowa kopiuje do * next
++ dowolny element w interwale [ first
, last
) inny niż procent (%). Dla procentu, po którym następuje znak C w interwale [ first
, last
), funkcja zamiast tego obliczado_put
next
= ( next
, , _Iosbase
_Fill
, , _Pt
, C, 0) i pomija przeszłości C. Jeśli jednak C jest znakiem kwalifikatora z zestawu EOQ#, a następnie znakiem C2
w interwale [ first
, last
), funkcja zamiast tego oblicza next
= do_put
( next
, _Iosbase
_Pt
_Fill
C2
C) i pomija przeszłości C2
.
Przykład
// 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 dla obiektów typu time_put
.
explicit time_put(size_t _Refs = 0);
Parametry
_Bibl.
Wartość całkowita używana do określania typu zarządzania pamięcią dla obiektu.
Uwagi
Możliwe wartości parametru _Refs i ich istotności to:
0: Okres istnienia obiektu jest zarządzany przez ustawienia regionalne, które go zawierają.
1: Okres istnienia obiektu musi być zarządzany ręcznie.
> 1: Te wartości nie są zdefiniowane.
Konstruktor inicjuje obiekt podstawowy za pomocą ustawień regionalnych::facet(_Refs).
Zobacz też
<ustawienia regionalne>
time_base, klasa
Bezpieczeństwo wątku w standardowej bibliotece C++