c++ 将时间点与时间点的差异进行比较

2hh7jdfx  于 2023-05-24  发布在  其他
关注(0)|答案(1)|浏览(216)

如何将时间点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)
    {
        
    }
}
fumotvh3

fumotvh31#

2 time_point s之间的差是不是a std::chrono::time_point,而是std::chrono::duration,它表示一个时间间隔。
因此,您需要更改这一行:

TimePoint t = TimePoint(std::chrono::milliseconds(100));

进入:

std::chrono::duration t = std::chrono::milliseconds(100);

或者简单地使用auto,这样编译器将推断出以下类型:

auto t = std::chrono::milliseconds(100);

相关问题