std::chrono::operator<< (std::chrono::duration) - cppreference.com (original) (raw)

Inserts a textual representation of d into os.

Behaves as if it was implemented as

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();

In other words, the stream flags, locale, and precision are determined by the stream, but any padding are determined using the entire output string.

The units_suffix is determined based on Period::type according to the following table.

Period::type Suffix
std::atto as
std::femto fs
std::pico ps
std::nano ns
std::micro µs (U+00B5) or us, it is implementation-defined which one is used
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
None of the above, and Period::type::den == 1 [_num_]s
None of the above [num/_den_]s

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.

[edit] Return value

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

[edit] Example

This example shows the output of std::chrono::operator<< when given a duration:

#include #include using namespace std::chrono_literals;   int main() { constexpr auto duration = 123ms; std::cout << duration << '\n'; }

Output:

[edit] See also