Namespaces
Variants
Actions

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

From cppreference.com
< cpp‎ | 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,

                conststd::chrono::duration<Rep, Period>& d );
(since C++20)

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 belowreturn 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::attoas
std::femtofs
std::picops
std::nanons
std::microµs(U+00B5) or us, it is implementation-defined which one is used
std::millims
std::centics
std::decids
std::ratio<1>s
std::decadas
std::hectohs
std::kiloks
std::megaMs
std::gigaGs
std::teraTs
std::petaPs
std::exaEs
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 <chrono>#include <iostream>usingnamespace std::chrono_literals;   int main(){constexprauto duration = 123ms;std::cout<< duration <<'\n';}

Output:

123ms

[edit]See also

(C++20)
stores formatted representation of the arguments in a new string
(function template)[edit]
formatting support for duration
(class template specialization)[edit]
performs stream input and output on strings
(function template)[edit]
(C++11)
converts an integral or floating-point value to string
(function)[edit]
(C++11)
converts an integral or floating-point value to wstring
(function)[edit]
close