sleep_until不适用于 MSVC 中的steady_clock

sleep_until doesn't work with steady_clock in MSVC

本文关键字:中的 steady clock MSVC 适用于 until 不适用 sleep      更新时间:2023-10-16

考虑此代码:

#include <chrono>
#include <thread>
using namespace std::chrono_literals;
int main()
{
    auto sx = std::chrono::steady_clock::now();
    std::this_thread::sleep_until(sx + 10s);
}

我希望该代码睡觉10秒;如果我用GCC编译它,那正是它的作用。但是,如果我使用Microsoft VS2015,它根本不睡觉。

如果我将steady_clock更改为system_clock,Microsoft编译器会生成按预期工作的代码(但可能对system_clock调整很敏感。)

这是一个错误,还是我误解了某些东西?

您的代码在我的系统中完美工作。我正在使用MSVC2015更新2与Windows 10 x64。

我认为这是MSVC2015的错误。