std::chrono::duration_cast是C++标准库中的一个函数模板,用于将一个时间段(duration)从一个时间单位转换为另一个时间单位。它的定义位于<chrono>头文件中。 该函数模板的语法如下: 代码语言:txt 复制 template <class ToDuration, class Rep, class Period> constexpr ToDuration duration_cast(const std::chrono...
使用duration_cast可以方便的在不同时间单位间进行转换,如: auto sec=seconds(123); auto minu=duration_cast<minutes>(sec); cout<<sec.count()<<","<<minu.count()<<endl; // 123,2 ratio ratio是一个分数模板类,第一个参数为分子,第二个参数为分母;通过静态成员可获取: num:分子 den:分母 typedef ...
函数不参与重载决议,除非ToDuration是std::chrono::duration的实例。 在源周期能准确地为目标周期所整除的场合(例如小时到分钟),浮点时长和整数时长间转型能隐式进行,无需duration_cast。 从浮点时长转型到整数时长,在浮点值为 NaN 、无穷大或过大而无法以目标的整数类型表示时,导致未定义行为。
duration_cast用于将duration进行转换成另一个类型的duration。 duration还有一个成员函数count(),用来表示这一段时间的长度 1#include<iostream>2#include<string.h>3#include<chrono>4usingnamespacestd::chrono;5usingnamespacestd;6intmain()7{8auto start =std::chrono::steady_clock::now();9for(inti=0;i...
这里,duration_cast函数会将ms对象转换为sec对象。值得注意的是,这个转换是向下取整的。也就是说,如果ms是1500毫秒,那么sec将是1秒。 我们可以将这个过程想象为将一堆石头(milliseconds)转移到不同大小的箱子(seconds)。我们不能将半块石头放进箱子里,所以我们必须将多余的石头扔掉。这就是duration_cast函数向下取整...
// duration_cast #include <iostream> // std::cout #include <chrono> // std::chrono::seconds, std::chrono::milliseconds // std::chrono::duration_cast int main ( int argc, char **argv ) { std::chrono::seconds s (1); // 1 second std::chrono::milliseconds ms = std::chrono::du...
将std::chrono::duration转换为与duration类型不同的ToDuration。注意: 对于整数duration来说,如果源Period可以被目的Period整除(例如小时到分钟)或浮点数duration之间的强制类型转换可以通过普通的类型转换或隐式地通过std::chrono::duration构造函数来执行,不需要使用duration_cast。
constexpr ToDuration duration_cast(const duration<Rep,Period>& d); (C++11 起) 转换std::chrono::duration 为不同类型 ToDuration 的时长。 不使用隐式转换。可能的情况下避免乘法和除法,若在编译时已知一或多个参数为 1 。以最宽的可用类型进行计算,而如同用 static_cast 到结果类型的转换,只在完成时...
duration_cast 使用duration_cast可以方便的在不同时间单位间进行转换,如: auto sec=seconds(123); auto minu=duration_cast<minutes>(sec); cout<<sec.count()<<","<<minu.count()<<endl; // 123,2 1. 2. 3. ratio ratio是一个分数模板类,第一个参数为分子,第二个参数为分母;通过静态成员可获取:...
std::chrono::duration::operator-- std::chrono::duration::operators std::chrono::duration::operators (%=) std::chrono::duration::operators (unary) std::chrono::duration::zero std::chrono::duration_cast std::chrono::duration_values std::chrono::duration_values::max std::chrono::duration_va...