std::chrono::operator<< (std::chrono::duration)
来自 cppreference.com
在头文件 <chrono> 中定义 |
||
template< class CharT, |
(自 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
分别是 Period::type::num
和 Period::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 (函数) |
(C++11) |
将整数或浮点值转换为 wstring (函数) |