如何将时间点t
与两个时间点之间的差值elapsed
进行比较?换句话说,我正在验证到目前为止经过的时间是否<=给定时间点,即100 ms。elapsed
本身不应该是一个时间点,与t
比较是没有问题的吗?
#include <chrono>
#include <thread>
using Clock = std::chrono::steady_clock;
using TimePoint = std::chrono::time_point<Clock>;
int main()
{
TimePoint begin = Clock::now();
std::chrono::seconds delay(2);
std::this_thread::sleep_for(delay);
auto cur = Clock::now();
auto elapsed = cur - begin;
TimePoint t = TimePoint(std::chrono::milliseconds(100));
if (elapsed <= t)
{
}
}
1条答案
按热度按时间fumotvh31#
2
time_point
s之间的差是不是astd::chrono::time_point
,而是std::chrono::duration
,它表示一个时间间隔。因此,您需要更改这一行:
进入:
或者简单地使用
auto
,这样编译器将推断出以下类型: