std :: chrono创建恒定时间圈

时间:2016-04-13 09:59:25

标签: c++11 chrono

我如何比较2个timpoints之间的差异是否比某个修正时间更重要?我可以测量时间,但我无法按照我想要的时间创建常量。

到目前为止,我有以下代码:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now();
...
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now();
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2- t1);

我想创建一个常量并比较如下:

std::chrono::milliseconds maxTime;
maxTime = 5000;
if(elapsedTime > maxTime){
    //....
}

maxTime的分配不起作用。 知道怎么做而不通过构造函数传递整数)?

2 个答案:

答案 0 :(得分:1)

您已将maxTime声明为std::chrono::milliseconds - 这就是您无法为其分配int的原因。如果您要分配给maxTime的毫秒数 - 让我们称之为int myAmount - 请使用maxTime = std::chrono::milliseconds(myAmount);当然,maxTime无法声明为const然后

答案 1 :(得分:1)

您可以更改代码,如:

std::chrono::steady_clock::time_point t1= std::chrono::steady_clock::now();
// ...
std::chrono::steady_clock::time_point t2= std::chrono::steady_clock::now();
auto elapsedTime = std::chrono::duration_cast<std::chrono::milliseconds>(t2-t1);
constexpr const std::chrono::milliseconds maxTime(5000); // <- this is the important change!
if(elapsedTime > maxTime){
    //...
}