std::chrono::operator<< (std::chrono::duration)
Определено в заголовке <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; // see below 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 в суффиксе форматируются как десятичное число без ведущих нулей соответственно.
Значение результата
Ссылка на поток, т.е., 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) | сохраняет отформатированное представление аргументов в новой строке (шаблон функции) |
|
(C++20) | поддержка форматирования для duration (специализация шаблона класса) |
| выполняет ввод-вывод потока для строк (шаблон функции) |
|
|
(C++11) | преобразует целое или число с плавающей точкой в string (функция) |
|
(C++11) | преобразует целое или число с плавающей точкой в wstring (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/chrono/duration/operator_ltlt