Partager via


time_put, classe

Le modèle de classe décrit un objet qui peut servir de facette de paramètres régionaux pour contrôler les conversions de valeurs de temps en séquences de type CharType.

Syntaxe

template <class CharType,
    class OutputIterator = ostreambuf_iterator<CharType>>
class time_put : public locale::facet;

Paramètres

CharType
Type utilisé dans le cadre d'un programme pour encoder des caractères.

OutputIterator
Type d'itération dans lequel les fonctions put temporelles enregistrent leur sortie.

Notes

Comme avec n'importe quelle facette de paramètres régionaux, l'ID d'objet statique possède une valeur stockée initiale de zéro. La première tentative d’accès à sa valeur stockée entraîne le stockage d’une valeur positive unique dans id.

Constructeurs

Constructeur Description
time_put Constructeur des objets de type time_put.

Typedefs

Nom de type Description
char_type Type utilisé pour décrire un caractère utilisé par des paramètres régionaux.
iter_type Type qui décrit un itérateur de sortie.

Fonctions Membre

Fonction membre Description
do_put Fonction virtuelle qui fournit en sortie des informations de date et d'heure sous la forme d'une séquence d'objets CharType.
put Fournit en sortie des informations de date et d'heure sous la forme d'une séquence d'objets CharType.

Spécifications

Header :<locale>

Espace de noms : std

time_put ::char_type

Type utilisé pour décrire un caractère utilisé par des paramètres régionaux.

typedef CharType char_type;

Notes

Le type est un synonyme du paramètre de modèle CharType.

time_put ::d o_put

Fonction virtuelle qui fournit en sortie des informations de date et d'heure sous la forme d'une séquence d'objets CharType.

virtual iter_type do_put(
    iter_type next,
    ios_base& _Iosbase,
    const tm* _Pt,
    char _Fmt,
    char _Mod = 0) const;

Paramètres

suivant
Itérateur de sortie indiquant où la séquence de caractères représentant la date et l’heure doivent être insérés.

_Iosbase
Inutilisé.

_Pt
Les informations de date et d’heure fournies en sortie.

_Fmt
Le format de la sortie. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

_Mod
Un modificateur du format. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

Valeur de retour

Un itérateur pour la première position après le dernier élément inséré.

Notes

La fonction membre protégée virtuelle génère des éléments séquentiels commençant à next partir des valeurs temporelles stockées dans l’objet * _Pt, de type tm. La fonction retourne un itérateur désignant l’emplacement suivant où insérer un élément au-delà de la sortie générée.

La sortie est générée par les mêmes règles que celles utilisées par strftime, avec un dernier argument de _Pt, pour générer une série d’éléments char dans un tableau. Chaque élément de ce char type est supposé mapper à un élément de type CharType équivalent par un mappage simple, un-à-un. Si _Mod est égal à zéro, le format effectif est « %F », où F est remplacé par _Fmt. Sinon, le format effectif est « %MF », où M est remplacé par _Mod.

Exemple

Consultez l’exemple relatif à put, qui appelle do_put.

time_put ::iter_type

Type qui décrit un itérateur de sortie.

typedef OutputIterator iter_type;

Notes

Le type est un synonyme du paramètre de modèle OutputIterator.

time_put ::p ut

Fournit en sortie des informations de date et d'heure sous la forme d'une séquence d'objets 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;

Paramètres

suivant
Itérateur de sortie indiquant où la séquence de caractères représentant la date et l’heure doivent être insérés.

_Iosbase
Inutilisé.

_Remplir
Caractère de type CharType utilisé pour l’espacement.

_Pt
Les informations de date et d’heure fournies en sortie.

_Fmt
Le format de la sortie. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

_Mod
Un modificateur du format. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

first
Le début de la chaîne de mise en forme pour la sortie. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

last
La fin de la chaîne de mise en forme pour la sortie. Consultez strftime, wcsftime, _strftime_l, _wcsftime_l pour obtenir des valeurs valides.

Valeur de retour

Un itérateur pour la première position après le dernier élément inséré.

Notes

La première fonction membre retourne do_put(next, _Iosbase, _Fill, _Pt_Fmt, , ). _Mod La deuxième fonction membre copie vers * next ++ tout élément de l’intervalle [ first, last) autre qu’un pourcentage (%). Pour un pourcentage suivi d’un caractère C dans l’intervalle [ first, ), lastla fonction évalue = nextdo_put à la place ( next, _Iosbase_Fill, , _Pt, C, 0) et ignore le passé C. Si, toutefois, C est un caractère de qualificateur du jeu EOQ#, suivi d’un caractère C2 dans l’intervalle [ first, ), lastla fonction évalue nextdo_put = à la place ( next, , _Pt_Fill_Iosbase, , C2C) et ignore le passé .C2

Exemple

// 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

Constructeur d’objets de type time_put.

explicit time_put(size_t _Refs = 0);

Paramètres

_Refs
Valeur entière qui sert à spécifier le type de gestion de la mémoire pour l’objet.

Notes

Les valeurs possibles pour le paramètre _Refs et leur signification sont les suivantes :

  • 0 : la durée de vie de l’objet est gérée par les paramètres régionaux qui le contiennent.

  • 1 : la durée de vie de l’objet doit être gérée manuellement.

  • > 1 : Ces valeurs ne sont pas définies.

Le constructeur initialise son objet de base avec les paramètres régionaux ::facet(_Refs).

Voir aussi

<locale>
time_base, classe
Sécurité des threads dans la bibliothèque C++ Standard