Namespaces
Variants

std::chrono:: operator<< (std::chrono::day)

From cppreference.net
< cpp ‎ | chrono ‎ | day
定义于头文件 <chrono>
template < class CharT, class Traits >

std:: basic_ostream < CharT, Traits > &

operator << ( std:: basic_ostream < CharT, Traits > & os, const std:: chrono :: day & d ) ;
(C++20 起)

生成一个由 d 中存储的日期值组成的 std:: basic_string < CharT > 字符串 s ,该值被格式化为十进制数字,若结果本应为单个十进制数字则添加前导零。随后,若 ! d. ok ( ) ,则在格式化字符串后追加 " is not a valid day" 。最后将该字符串插入到 os 中。

等同于

return os << ( d. ok ( ) ?
std:: format ( STATICALLY_WIDEN < CharT > ( "{:%d}" ) , d ) :
std:: format ( STATICALLY_WIDEN < CharT > ( "{:%d} 不是有效日期" ) , d ) ) ;

其中 STATICALLY_WIDEN < CharT > ( "..." ) CharT char 时是 "..." ,当 CharT wchar_t 时是 L "..."

返回值

os

示例

#include <chrono>
#include <iostream>
int main()
{
    constexpr std::chrono::day d1{31}, d2{7}, d3{42}, d4{};
    std::cout << d1 << '\n'
              << d2 << '\n'
              << d3 << '\n'
              << d4 << '\n';
}

可能的输出:

31
07
42 is not a valid day
00 is not a valid day

参见

(C++20)
将参数的格式化表示存储于新字符串中
(函数模板)
day 的格式化支持
(类模板特化)