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: