time_put – třída
Šablona třídy popisuje objekt, který může sloužit jako omezující vlastnost národního prostředí k řízení převodů časových hodnot na sekvence typu CharType
.
Syntaxe
template <class CharType,
class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;
Parametry
CharType
Typ používaný v rámci programu ke kódování znaků.
OutputIterator
Typ iterátoru, do kterého časové funkce zapisují svůj výstup.
Poznámky
Stejně jako u omezující vlastnosti národního prostředí má ID statického objektu počáteční uloženou hodnotu nula. První pokus o přístup k uložené hodnotě ukládá jedinečnou kladnou hodnotu v ID.
Konstruktory
Konstruktor | Popis |
---|---|
time_put | Konstruktor pro objekty typu time_put . |
Typedefs
Název typu | Popis |
---|---|
char_type | Typ, který se používá k popisu znaku používaného národním prostředním. |
iter_type | Typ, který popisuje výstupní iterátor. |
Členské funkce
Členová funkce | Popis |
---|---|
do_put | Virtuální funkce, která vypíše informace o čase a datu jako posloupnost s CharType . |
dát | Vypíše informace o čase a datu jako posloupnost s CharType . |
Požadavky
Záhlaví:<národní prostředí>
Obor názvů: std
time_put::char_type
Typ, který se používá k popisu znaku používaného národním prostředním.
typedef CharType char_type;
Poznámky
Typ je synonymem pro parametr CharType
šablony .
time_put::d o_put
Virtuální funkce, která vypíše informace o čase a datu jako posloupnost s CharType
.
virtual iter_type do_put(
iter_type next,
ios_base& _Iosbase,
const tm* _Pt,
char _Fmt,
char _Mod = 0) const;
Parametry
další
Výstupní iterátor, kde má být vložena posloupnost znaků představujících čas a datum.
_Iosbase
Nepoužívá se.
_Pt
Výstupem jsou informace o čase a datu.
_Fmt
Formát výstupu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
_Zkratka modulo
Modifikátor formátu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
Návratová hodnota
Iterátor na první pozici za posledním vloženým prvkem.
Poznámky
Virtuální chráněná členová funkce generuje sekvenční prvky počínaje next
časovými hodnotami uloženými v objektu * _Pt
, typu tm
. Funkce vrátí iterátor označující další místo pro vložení prvku mimo vygenerovaný výstup.
Výstup je generován stejnými pravidly, která používá , s posledním argumentem strftime
_Pt, pro generování řady char
prvků do pole. Každý takový char
prvek se předpokládá, že mapuje na ekvivalentní prvek typu CharType
jednoduchým mapováním 1:1. Pokud se _Mod rovná nule, efektivní formát je %F, kde F se nahradí _Fmt. V opačném případě je efektivní formát %MF, kde M se nahradí _Mod.
Příklad
Podívejte se na příklad pro vložení, který volá do_put
.
time_put::iter_type
Typ, který popisuje výstupní iterátor.
typedef OutputIterator iter_type;
Poznámky
Typ je synonymem pro parametr OutputIterator
šablony .
time_put::p ut
Vypíše informace o čase a datu jako posloupnost 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
další
Výstupní iterátor, kde má být vložena posloupnost znaků představujících čas a datum.
_Iosbase
Nepoužívá se.
_Vyplnit
Znak typu CharType
použitý pro mezery.
_Pt
Výstupem jsou informace o čase a datu.
_Fmt
Formát výstupu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
_Zkratka modulo
Modifikátor formátu. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
první
Začátek formátovacího řetězce pro výstup. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
poslední
Konec formátovacího řetězce pro výstup. Platné hodnoty najdete v tématu strftime, wcsftime, _strftime_l, _wcsftime_l .
Návratová hodnota
Iterátor na první pozici za posledním vloženým prvkem.
Poznámky
První členová funkce vrátí do_put(next
, _Iosbase
, _Fill
, _Pt
, _Fmt
, ). _Mod
Druhá členová funkce zkopíruje do * next
++ libovolný prvek v intervalu [ , first
last
) jiný než procento (%). Pro procento následované znakem C v intervalu [ first
, last
), funkce místo toho vyhodnotído_put
= next
( next
, _Iosbase
, , _Fill
, , _Pt
C, 0) a přeskočí za C. Pokud je však jazyk C kvalifikátorem znak ze sady EOQ#, za nímž následuje znak C2
v intervalu [ first
, ), last
funkce místo toho vyhodnotí = next
do_put
( next
, , _Iosbase
, _Fill
, _Pt
, , C2
C) a přeskočí minulost .C2
Příklad
// 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 pro objekty typu time_put
.
explicit time_put(size_t _Refs = 0);
Parametry
_Refs
Celočíselná hodnota použitá k určení typu správy paměti pro objekt.
Poznámky
Možné hodnoty pro parametr _Refs a jejich významnost jsou:
0: Životnost objektu je spravována národními prostředími, které ho obsahují.
1: Životnost objektu musí být spravována ručně.
> 1: Tyto hodnoty nejsou definovány.
Konstruktor inicializuje svůj základní objekt s locale::facet(_Refs).
Viz také
<locale>
time_base – třída
Bezpečný přístup z více vláken ve standardní knihovně C++