命名空间
变体
操作

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

来自 cppreference.com
< cpp‎ | chrono‎ | duration
 
 
实用程序库
语言支持
类型支持 (基本类型,RTTI)
库功能测试宏 (C++20)
动态内存管理
程序实用程序
协程支持 (C++20)
可变参数函数
调试支持
(C++26)
三向比较
(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)

 
 
 
在头文件 <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

对于表格的最后两行,后缀中的 numden 分别是 Period::type::numPeriod::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
(函数) [编辑]