std::chrono::duration_cast

来自cppreference.com
< cpp‎ | chrono‎ | duration

 
 
 
 
 
template <class ToDuration, class Rep, class Period>
constexpr ToDuration duration_cast(const duration<Rep,Period>& d);
(C++11 起)
std::chrono::duration转换到不同类型的ToDuration时间.
原文:
Converts a std::chrono::duration to a duration of different type ToDuration.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
没有使用隐式转换。的乘法和除法,避免在可能的情况下,如果它是已知在编译时,一个或多个参数是1。完成在最广泛的类型的可用的计算和转换为仅完成时的结果类型.
原文:
No implicit conversions are used. Multiplications and divisions are avoided where possible, if it is known at compile time that one or more parameters are 1. Computations are done in the widest type available and converted to the result type only when finished.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

目录

[编辑] 参数

d -
时间转换
原文:
duration to convert
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 返回值

d转换的持续时间的类型ToDuration.
原文:
d converted to a duration of type ToDuration.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 注释

该函数不参与重载决议,除非ToDuration是一个实例std::chrono::duration.
原文:
The function does not participate in the overload resolution unless ToDuration is an instance of std::chrono::duration.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。
含蓄可以进行浮点持续时间或持续时间之间的整数间的转换,源周期整除的目标期限​​(例如几小时缩短到几分钟),没有duration_cast.
原文:
Casting between floating-point durations or between integer durations where the source period is exactly divisible by the target period (e.g. hours to minutes) can be performed 含蓄, no duration_cast is needed.
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

[编辑] 示例

此示例测量一个函数的执行时间
原文:
This example measures the execution time of a function
文本通过谷歌翻译机器翻译。
你可以帮忙校正和验证翻译。点击此处查看指示。

#include <iostream>
#include <chrono>
#include <thread>
 
void f()
{
    std::this_thread::sleep_for(std::chrono::seconds(1));
}
 
int main()
{
    auto t1 = std::chrono::high_resolution_clock::now();
    f();
    auto t2 = std::chrono::high_resolution_clock::now();
    std::cout << "f() took "
              << std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1).count()
              << " milliseconds\n";
}

输出:

f() took 1000 milliseconds