Namespaces
Variants

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

From cppreference.net
Определено в заголовочном файле <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; // см. ниже
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

Для последних двух строк таблицы, num и den в суффиксе являются Period::type::num и Period::type::den отформатированными как десятичное число без ведущих нулей, соответственно.

Возвращаемое значение

Ссылка на поток, т.е., 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
(специализация шаблона класса)
выполняет потоковый ввод и вывод для строк
(шаблон функции)
(C++11)
преобразует целочисленное или вещественное значение в string
(функция)
(C++11)
преобразует целочисленное или вещественное значение в wstring
(функция)