名前空間
変種
操作

std::chrono::operator<< (std::chrono::duration)

From cppreference.com
< cpp‎ | chrono‎ | duration
 
 
 
 
ヘッダー <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 に挿入します。

以下のように実装されているかのようになります。

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行では、接尾辞の numden は、それぞれ Period::type::numPeriod::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 の書式設定サポート
(クラス テンプレートの特殊化) [edit]
文字列に対するストリーム入出力を実行する
(function template) [編集]
(C++11)
整数値または浮動小数点値を string に変換する
(function) [編集]
整数値または浮動小数点値を wstring に変換する
(function) [編集]
English 日本語 中文(简体) 中文(繁體)