std::chrono::operator<< (std::chrono::duration)
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <chrono> で定義
|
||
template <class CharT, class Traits, class Rep, class Period> std::basic_ostream<CharT, Traits>& operator<<(std::basic_ostream<CharT, Traits>& os, const std::chrono::duration<Rep, Period>& d); |
(C++20以上) | |
d のテキスト表現を os に挿入します。 CharT が char でも wchar_t でもない場合、または Rep が short と同じかより高い変換ランクを持つ整数型でも浮動小数点型でもない場合、動作は未定義です。
以下のようなことを行なったかのように動作します。 まず std::to_string(d.count()) (CharT が char の場合) または std::to_wstring(d.count()) (CharT が wchar_t の場合) の文字から構成される std::basic_string<CharT, Traits> str を形成します。 そして以下の表に従って Period::type に基づいた接尾辞を str に追加し、 os << str; を用いて str をストリームに出力します。
Period::type
|
接尾辞 |
| std::atto | as
|
| std::femto | fs
|
| std::pico | ps
|
| std::nano | ns
|
| std::micro | µs (U+00B5)
|
| std::milli | ms
|
| std::centi | cs
|
| std::deci | ds
|
| std::ratio<1> | s
|
| std::deca | das
|
| std::hecto | hs
|
| std::kilo | ks
|
| std::mega | Ms
|
| std::giga | Gs
|
| std::tera | Ts
|
| std::peta | Ps
|
| std::exa | Es
|
| std::ratio<60> | min
|
| std::ratio<3600> | h
|
| std::ratio<86400> | d
|
以上のどれでもなく、 Period::type::den == 1 の場合
|
[num]s
|
| 以上のどれでもない場合 | [num/den]s
|
std::micro について、文字 µ (U+00B5) が CharT 用のエンコーディングで表現できない場合は、代わりに接尾辞「us」が使用されます。
最後の2行について、接尾辞の num および den は、それぞれ、先頭にゼロを付加しない10進数でフォーマットされた Period::type::num および Period::type::den です。
戻り値
ストリームを指す参照、すなわち os。
ノート
d.count() は std::to_string/std::to_wstring のルールを用いてフォーマットされます。 特に、 Rep が浮動小数点型の場合は必ず小数点以下6桁でフォーマットされ、 d.count() が小さければ、結果の文字列内の有効桁数がゼロになることもあります。
関連項目
(C++20) |
引数の書式化された表現を新しい文字列に格納します (関数テンプレート) |
提供された書式に従って duration を書式化する std::formatter の特殊化 (クラステンプレートの特殊化) | |
| 文字列のストリーム入出力を行います (関数テンプレート) | |
(C++11) |
整数または浮動小数点値を string に変換します (関数) |
(C++11) |
整数または浮動小数点値を wstring に変換します (関数) |