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

来自cppreference.com
< cpp‎ | chrono‎ | duration
 
 
 
日期和时间工具
(C++11)
(C++11)
时钟
(C++20)
                                                  
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
日历
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
时区
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
(C++20)
C 风格日期和时间
 
 
定义于头文件 <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 中,若 CharT 既非 char 亦非 wchar_t ,或若 Rep 既非浮点类型亦非转换等级大于或等于 short 的类型,则行为未定义。

表现如同它构成一个首先由 std::to_string(d.count()) (若 CharTchar )或 std::to_wstring(d.count()) (若 CharTwchar_t ) 中的字符组成的 std::basic_string<CharT, Traits> str 。然后将 str 后附按照下表基于 Period::type 的后缀,并用 os << str; 插入 str 到流。

 
Period::type 后缀
std::atto as
std::femto fs
std::pico ps
std::nano ns
std::micro µs (U+00B5)
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

对于 std::micro ,若字符 µ (U+00B5) 不能以 CharT 所用的编码表示,则替而使用后缀 "us" 。

对于表中最后二行,后缀中的 numden 分别是格式化为不带前导零的 Period::type::numPeriod::type::den

返回值

到流的引用,即 os

注意

std::to_string/std::to_wstring 的规则格式化 d.count() 。特别是,若 Rep 为浮点类型,则始终以小数点后 6 位十进制数的格式格式化,而若 d.count() 很小则结果字符串的有效位数可能为零。

参阅

(C++20)
按照提供的格式输出 duration 到流
(函数模板)
执行字符串的流输入与输出
(函数模板)
(C++11)
转换整数或浮点值为 string
(函数)
转换整数或浮点值为 wstring
(函数)