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

Defined in header <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);
(since C++20)

Inserts a textual representation of d into os. The behavior is undefined if CharT is neither char or wchar_t, or if Rep is neither a floating-point type nor a integral type with conversion rank equal to or greater than short.

Behaves as if it forms a std::basic_string<CharT, Traits> str initially consisting of the characters in std::to_string(d.count()) (if CharT is char) or std::to_wstring(d.count()) (if CharT is wchar_t). Appends to str a suffix based on Period::type according to the following table, and inserts str into the stream with os << str;.

Period::type Suffix
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
None of the above, and Period::type::den == 1 [num]s
None of the above [num/den]s

For std::micro, if the character µ (U+00B5) cannot be represented in the encoding used for CharT, the suffix "us" is used instead.

For the last two rows of the table, num and den in the suffix are Period::type::num and Period::type::den formatted as a decimal number with no leading zeroes, respectively.

Return value

A reference to the stream, i.e., os.


d.count() is formatted using the rules of std::to_string/std::to_wstring. In particular, if Rep is a floating-point type, it is always formatted with 6 digits after the decimal point, and the number of significant digits in the resulting string may be zero if d.count() is small.

See also

outputs a duration into a stream according to the provided format
(function template)
performs stream input and output on strings
(function template)
converts an integral or floating point value to string
converts an integral or floating point value to wstring

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.