Пространства имён
Варианты
Действия

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

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
 
<tbody> </tbody>
Определено в заголовочном файле <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
(функция) [править]
преобразует целое значение или значение с плавающей запятой в wstring
(функция) [править]