std::time_put_byname
提供: cppreference.com
ヘッダ <locale> で定義
|
||
template< class CharT, class OutputIterator = std::ostreambuf_iterator<CharT> > class time_put_byname : public std::time_put<CharT, OutputIterator>; |
||
std::time_put_byname は構築時に指定されたロケールの時間と日付の書式化ルールをカプセル化する std::time_put ファセットです。
2つの特殊化が標準ライブラリによって提供されます。
ヘッダ
<locale> で定義 | |
std::time_put_byname<char, OutputIterator> | ナロー/マルチバイトの時間の書式化 |
std::time_put_byname<wchar_t, OutputIterator> | ワイド文字列の時間の書式化 |
目次 |
[編集] メンバ型
メンバ型 | 定義 |
char_type
|
CharT
|
iter_type
|
OutputIterator
|
[編集] メンバ関数
コンストラクタ |
新しい time_put_byname ファセットを構築します (パブリックメンバ関数) |
デストラクタ |
time_put_byname ファセットを破棄します (プロテクテッドメンバ関数) |
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 ); |
(C++11以上) | |
名前 name
を持つロケールに対する新しい std::time_put_byname
ファセットを構築します。
refs
はリソース管理のために使用されます。 refs == 0 の場合、処理系はそれを保持する最後の std::locale オブジェクトが破棄されたときにファセットを破棄します。 そうでなければ、オブジェクトは破棄されません。
引数
name | - | ロケールの名前 |
refs | - | ファセットにリンクする参照の数 |
std::time_put_byname::~time_put_byname
protected: ~time_put_byname(); |
||
ファセットを破棄します。
std::time_put から継承
メンバオブジェクト
メンバ名 | 型 |
id (static)
|
std::locale::id |
メンバ関数
do_put を呼びます ( std::time_put<CharT,OutputIt> のパブリックメンバ関数)
|
プロテクテッドメンバ関数
[仮想] |
日付/時間を書式化し出力ストリームに書き込みます ( std::time_put<CharT,OutputIt> の仮想プロテクテッドメンバ関数)
|
[編集] 例
この例は様々な time_put_byname ファセットによって time_put ファセットを置き換えた "C" ロケールを用いて現在の時間を表示します。
Run this code
#include <iostream> #include <ctime> #include <iomanip> #include <codecvt> int main() { std::time_t t = std::time(NULL); 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"))); 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'; }
出力例:
木曜日 2012年08月09日 21時41分02秒 Четверг Чт. 09 авг. 2012 21:41:02 torsdag tor 9 aug 2012 21:41:02
[編集] 関連項目
文字シーケンスとして出力するために struct std::tm の内容をフォーマットします (クラステンプレート) |