Namespaces
Variants

std:: time_put_byname

From cppreference.net
Défini dans l'en-tête <locale>
template <

class CharT,
class OutputIt = std:: ostreambuf_iterator < CharT >

> class time_put_byname : public std:: time_put < CharT, OutputIt >

std::time_put_byname est une facette std::time_put qui encapsule les règles de formatage de l'heure et de la date de la locale spécifiée lors de sa construction.

Table des matières

Spécialisations

La bibliothèque standard garantit de fournir chaque spécialisation qui satisfait aux exigences de type suivantes :

Types imbriqués

Type Définition
char_type CharT
iter_type OutputIt

Fonctions membres

(constructeur)
construit un nouveau facet time_put_byname
(fonction membre publique)
(destructeur)
détruit un facet time_put_byname
(fonction membre protégée)

std::time_put_byname:: time_put_byname

explicit time_put_byname ( const char * name, std:: size_t refs = 0 ) ;
explicit time_put_byname ( const std:: string & name, std:: size_t refs = 0 ) ;
(depuis C++11)

Construit un nouveau facet std::time_put_byname pour une locale avec name .

refs est utilisé pour la gestion des ressources : si refs == 0 , l'implémentation détruit le facet lorsque le dernier objet std::locale le contenant est détruit. Sinon, l'objet n'est pas détruit.

Paramètres

name - le nom de la locale
refs - le nombre de références liées au facet

std::time_put_byname:: ~time_put_byname

protected :
~time_put_byname ( ) ;

Détruit le facet.

Hérité de std:: time_put

Membres de données

Membre Description
std::locale::id id [static] l'identifiant de la facette

Fonctions membres

invoque do_put
(fonction membre publique de std::time_put<CharT,OutputIt> )

Fonctions membres protégées

[virtual]
formate la date/heure et écrit dans le flux de sortie
(fonction membre protégée virtuelle de std::time_put<CharT,OutputIt> )

Exemple

Affiche l'heure actuelle en utilisant les paramètres régionaux "C" avec le facet time_put remplacé par divers facets std::time_put_byname . Le résultat affiché a été obtenu en utilisant le compilateur clang.

#include <codecvt>
#include <ctime>
#include <iomanip>
#include <iostream>
int main()
{
    std::time_t t = std::time(nullptr);
    std::wbuffer_convert<std::codecvt_utf8<wchar_t>> conv(std::cout.rdbuf());
    std::wostream out(&conv);
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("ja_JP.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("ru_RU.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
    out.imbue(std::locale(out.getloc(),
                          new std::time_put_byname<wchar_t>("sv_SE.utf8")));
    out << std::put_time(std::localtime(&t), L"%A %c") << '\n';
}

Sortie possible :

木曜日 2023年10月05日 19時44分51秒
Четверг Чт 05 окт 2023 19:44:51
torsdag tor  5 okt 2023 19:44:51

Voir aussi

formate le contenu de std::tm pour la sortie sous forme de séquence de caractères
(modèle de classe)