【问题标题】:reset std::chrono::steady_clock::time_point to past [closed]将 std::chrono::steady_clock::time_point 重置为过去 [关闭]
【发布时间】:2021-05-06 16:08:37
【问题描述】:

是否可以初始化一个 std::chrono::steady_clock::time_point 变量,以便与std::chrono::hour>(currentTime - variable) 的比较大于一个?

【问题讨论】:

  • 是的,在您的第二次调用中,或者只是 std::chrono::steady_clock::time_point var{}。有什么问题?
  • 请注意,稳定时钟的零点不是一个明确定义的值(与 C++20 中system_clock 的零点不同)。 steady_clock 的纪元没有定义,因此在不同的实现中是可变的。唯一可以保证的是,在调用 now 之间它永远不会减少。

标签: c++ time chrono


【解决方案1】:

据我所知,它已经通过使用默认构造函数的方式进行了初始化。

要检查,如果它是“零”,你可以使用这个:

std::chrono::time_point<std::chrono::steady_clock> time;
bool isInvalidTime = !time.time_since_epoch().count(); // should be true
if (isInvalidTime)
    time = std::chrono::steady_clock::now();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多