我们使用的是32位time_t类型和std线程。我正在尝试使用此代码睡眠线程:
std::this_thread::sleep_for(std::chrono::seconds(2));
我收到警告,我正在尝试convert __64bit
到time_t(这是32),精度下降。当进一步查看时,错误是由Microsoft的“chrono”文件中的这一行引起的:
(750) _Xt.sec = chrono::duration_cast<chrono::seconds>(_T0).count();
_Xt.sec is of type time_t, chrono::duration_cast<chrono::seconds>(_T0).count() is of type __64 bit
。好像Ms std::chrono
的Ms实现无法处理32位time_t?
您可以在此处找到问题的示例项目: http://jimber.org/stdthread32bittimet.zip