我如何比较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的分配不起作用。 知道怎么做而不通过构造函数传递整数)?
答案 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){
//...
}