【问题标题】:I want to subtract a float from a chronos duration我想从 chronos 持续时间中减去一个浮点数
【发布时间】:2023-03-11 13:30:01
【问题描述】:

我正在使用 Chrono Library 测量持续时间。我是这样测量的:

auto start = std::chrono::high_resolution_clock::now();
auto finish = std::chrono::high_resolution_clock::now();
std::chrono::duration<float> elapsed = finish - start;

这可行,但现在我试图从浮点数或双精度数中减去持续时间(不管哪个),然后让线程休眠,如下所示: frameTime 是浮点数/双精度数。

this_thread::sleep_for(chrono::milliseconds(frameTime - elapsed));

这不起作用还是我在这里做错了什么?谢谢:)

【问题讨论】:

    标签: c++ chrono


    【解决方案1】:

    frameTime 是什么?纳秒,小时?为了消除歧义,您需要将数字转换为持续时间:

    auto const frameTime = std::chrono::milliseconds(some_number_here);
    this_thread::sleep_for(frameTime - elapse));
    

    请注意,您不必再将减法结果转换为chrono::miliseconds。您甚至可以减去不同的单位,例如小时 - 分钟

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2018-08-30
      • 1970-01-01
      相关资源
      最近更新 更多