Namensräume
Varianten
Aktionen

std::time_put_byname

Von cppreference.com
< cpp‎ | locale
 
 
 
 
Definiert in Header <locale>
template<

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

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

std::time_put_byname ist eine std::time_put Facette, welche die Zeit- und Datumsformatierungsregeln des bei ihrer Konstruktion angegebenen Gebietsschemas kapselt.

Inhalt

[bearbeiten] Spezialisierungen

Die Standardbibliothek garantiert die Bereitstellung jeder Spezialisierung, die die folgenden Typanforderungen erfüllt

  • CharT ist einer von char und wchar_t, und
  • OutputIt muss die Anforderungen an LegacyOutputIterator erfüllen.

[bearbeiten] Verschachtelte Typen

Typ Definition
char_type CharT
iter_type OutputIt

[bearbeiten] Memberfunktionen

(Konstruktor)
konstruiert eine neue time_put_byname Facette
(public member function) [bearbeiten]
(Destruktor)
zerstört eine time_put_byname Facette
(protected member function) [bearbeiten]

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 );
(seit C++11)

Konstruiert eine neue std::time_put_byname Facette für ein Gebietsschema mit dem Namen name.

refs wird für die Ressourcenverwaltung verwendet: Wenn refs = 0 ist, zerstört die Implementierung die Facettenklasse, wenn das letzte std::locale-Objekt, das sie hält, zerstört wird. Andernfalls wird das Objekt nicht zerstört.

Parameter

name - der Name der Locale
refs - die Anzahl der Referenzen, die auf die Facettenklasse verweisen

std::time_put_byname::~time_put_byname

protected:
~time_put_byname();

Zerstört die Facettenklasse.

Geerbt von std::time_put

[edit] Datenmember

Mitglied Beschreibung
std::locale::id id [static] die Kennung des Facets

Memberfunktionen

ruft do_put auf
(öffentliche Memberfunktion von std::time_put<CharT,OutputIt>) [bearbeiten]

Geschützte Memberfunktionen

[virtuell]
formatiert Datum/Zeit und schreibt in einen Ausgabestrom
(virtuelle geschützte Memberfunktion von std::time_put<CharT,OutputIt>) [bearbeiten]

[bearbeiten] Beispiel

Gibt die aktuelle Zeit mit dem "C"-Gebietsschema aus, wobei die time_put Facette durch verschiedene std::time_put_byname Facetten ersetzt wird. Das gezeigte Ergebnis wurde mit dem clang-Compiler erzielt.

#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';
}

Mögliche Ausgabe

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

[bearbeiten] Siehe auch

formatiert den Inhalt von std::tm für die Ausgabe als Zeichensequenz
(Klassentemplate) [bearbeiten]