std::time_put_byname
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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
<tbody> </tbody> 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
<tbody> </tbody> 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 の内容をフォーマットします (クラステンプレート) |