constexprToDuration duration_cast(constduration<Rep,Period>&d); (C++11 起) 转换std::chrono::duration为不同类型ToDuration的时长。 不使用隐式转换。可能的情况下避免乘法和除法,若在编译时已知一或多个参数为1。以最宽的可用类型进行计算,而如同用static_cast到结果类型的转换,只在完成时进行。
constexpr ToDuration duration_cast(const duration<Rep,Period>& d); (C++11 起) 转换std::chrono::duration 为不同类型 ToDuration 的时长。 不使用隐式转换。可能的情况下避免乘法和除法,若在编译时已知一或多个参数为 1 。以最宽的可用类型进行计算,而如同用 static_cast 到结果类型的转换,只在完成时...
constexprToDuration duration_cast(conststd::chrono::duration<Rep, Period>&d); (C++11 起) 将std::chrono::duration转换成不同类型ToDuration的时长。 只有ToDuration是std::chrono::duration的特化的情况下,此函数才会参与重载决议。 设 ToRep为typenameToDuration::rep, ...
// 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...
函数不参与重载决议,除非ToDuration是std::chrono::duration的实例。 在源周期能准确地为目标周期所整除的场合(例如小时到分钟),浮点时长和整数时长间转型能隐式进行,无需duration_cast。 从浮点时长转型到整数时长,在浮点值为 NaN 、无穷大或过大而无法以目标的整数类型表示时,导致未定义行为。
不同std::chrono::duration可以互相转换。如果转换的精度没有损失,可以隐式转换,它通过隐式转换构造函数实现。如果转换精度有损失,需要显式转换,通过std::chrono::duration_cast实现。附录中我们手写的那个简单Duration类有和std::chrono::duration一样的类型转换语义,感兴趣的读者可以看一下那个简易代码是如何实现的。
28 // duration::count 29 #include <iostream> // std::cout 30 #include <chrono> // std::chrono::seconds, std::chrono::milliseconds 31 // std::chrono::duration_cast 32 33 int main () 34 { 35 using namespace std::chrono;
28 // duration::count 29 #include <iostream> // std::cout 30 #include <chrono> // std::chrono::seconds, std::chrono::milliseconds 31 // std::chrono::duration_cast 32 33 int main () 34 { 35 using namespace std::chrono;
std::chrono::duration 描述 std::chrono::duration定义在文件中,用来表示一个时间段。 cppreference上的原话如下: Class template std::chrono::duration represents a time interval. It consists of a count of ticks of type Rep and a tick period, where the tick period is a compile-time rational cons...
std::chrono::duration 描述 std::chrono::duration定义在文件中,用来表示一个时间段。 cppreference上的原话如下: Class template std::chrono::duration represents a time interval. It consists of a count of ticks of type Rep and a tick period, where the tick period is a compile-time rational cons...