std::chrono::operator<< (std::chrono::duration)
From cppreference.com
| ヘッダー <chrono> で定義 |
||
| template< class CharT, |
(C++20以降) | |
d のテキスト表現を os に挿入します。
以下のように実装されているかのようになります。
std::basic_ostringstream<CharT, Traits> s; s.flags(os.flags()); s.imbue(os.getloc()); s.precision(os.precision()); s << d.count() << units_suffix; // see below return os << s.str();
言い換えると、ストリームフラグ、ロケール、および精度はストリームによって決定されますが、パディングは出力文字列全体を使用して決定されます。
units_suffix は、Period::type に基づいて、次の表に従って決定されます。
Period::type
|
接尾辞 |
| std::atto | as
|
| std::femto | fs
|
| std::pico | ps
|
| std::nano | ns
|
| std::micro | µs (U+00B5) または us。どちらが使用されるかは実装定義です。 |
| 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
|
表の最後の2行では、接尾辞の num と den は、それぞれ Period::type::num と Period::type::den を、先行ゼロのない10進数としてフォーマットしたものです。
[編集] 戻り値
ストリームへの参照。つまり os。
[編集] 例
この例では、std::chrono::operator<< が期間を与えられたときの出力を示します。
このコードを実行
#include <chrono> #include <iostream> using namespace std::chrono_literals; int main() { constexpr auto duration = 123ms; std::cout << duration << '\n'; }
出力
123ms
[編集] 関連項目
| (C++20) |
引数のフォーマット済み表現を新しい文字列に格納する (関数テンプレート) |
duration の書式設定サポート(クラス テンプレートの特殊化) | |
| 文字列に対するストリーム入出力を実行する (function template) | |
| (C++11) |
整数値または浮動小数点値を string に変換する(function) |
| (C++11) |
整数値または浮動小数点値を wstring に変換する(function) |