std::time_put_byname
| Definiert in Header <locale> |
||
| template< class CharT, |
||
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
-
CharTist einer von char und wchar_t, und -
OutputItmuss 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) |
| (Destruktor) |
zerstört eine time_put_byname Facette(protected member function) |
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>) |
Geschützte Memberfunktionen
| [virtuell] |
formatiert Datum/Zeit und schreibt in einen Ausgabestrom (virtuelle geschützte Memberfunktion von std::time_put<CharT,OutputIt>) |
[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) |