std::chrono::operator<<(std::chrono::year)
Материал из cppreference.com
<tbody>
</tbody>
| Определено в заголовочном файле <chrono>
|
||
template< class CharT, class Traits > std::basic_ostream<CharT, Traits>& operator<<( std::basic_ostream<CharT, Traits>& os, const std::chrono::year& y ); |
(начиная с C++20) | |
Формирует std::basic_string<CharT> s, состоящий из значения года, хранящегося в y, отформатированного как десятичное число, дополненное слева 0 до четырёх цифр, если результат меньше четырёх цифр. Затем, если !y.ok(), к отформатированной строке добавляется " is not a valid year". Вставляет эту строку в os.
Эквивалентно
return os << (y.ok() ? std::format(STATICALLY_WIDEN<CharT>("{:%Y}"), y) : std::format(STATICALLY_WIDEN<CharT>("{:%Y} is not a valid year"), y));
где STATICALLY_WIDEN<CharT>("...") равно "...", если CharT равно char, и L"...", если CharT равно wchar_t.
Возвращаемое значение
os.
Пример
Запустить этот код
#include <chrono>
#include <iostream>
int main()
{
constexpr std::chrono::year y1 {2020}, y2 {-020}, y3 {98304};
std::cout << y1 << '\n'
<< y2 << '\n'
<< y3 << '\n';
}
Возможный вывод:
2020
-0016
-32768 is not a valid year
Смотрите также
(C++20) |
сохраняет форматированное представление аргументов в новой строке (шаблон функции) |
поддержка форматирования для year (специализация шаблона класса) |