名前空間
変種
操作

std::time_put_byname

提供: cppreference.com
< cpp‎ | locale
 
 
 
ヘッダ <locale> で定義
template<class CharT, class OutputIterator =std::ostreambuf_iterator<CharT>>
class time_put_byname :publicstd::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_typeCharT
iter_typeOutputIterator

[編集]メンバ関数

コンストラクタ
新しい time_put_byname ファセットを構築します
(パブリックメンバ関数)[edit]
デストラクタ
time_put_byname ファセットを破棄します
(プロテクテッドメンバ関数)[edit]

std::time_put_byname::time_put_byname

explicit time_put_byname(constchar* name, std::size_t refs =0);
explicit time_put_byname(conststd::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>のパブリックメンバ関数)[edit]

プロテクテッドメンバ関数

[仮想]
日付/時間を書式化し出力ストリームに書き込みます
(std::time_put<CharT,OutputIt>の仮想プロテクテッドメンバ関数)[edit]

[編集]

この例は様々な time_put_byname ファセットによって time_put ファセットを置き換えた "C" ロケールを用いて現在の時間を表示します。

#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

[編集]関連項目

文字シーケンスとして出力するために structstd::tm の内容をフォーマットします
(クラステンプレート)[edit]
close