考虑这段代码:
#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
调整敏感。 )
这是一个错误,还是我误解了什么?
最佳答案
您的代码在我的系统中完美运行。我在 Windows 10 x64 上使用 MSVC2015 Update 2。
我认为这是 msvc2015 的一个错误。
关于c++ - sleep_until 不适用于 MSVC 中的 steady_clock,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37925562/