考虑这段代码:
#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编译它时的作用。但是,如果我使用微软VS2015,它根本就不会睡觉。
如果我将steady_clock
更改为system_clock
,Microsoft编译器会生成按预期工作的代码(但可能对system_clock
调整很敏感。)
这是一个错误,还是我误解了什么?
答案 0 :(得分:2)
您的代码在我的系统中完美运行。我在Windows 10 x64上使用MSVC2015 Update 2.
我认为这是msvc2015的错误。