【发布时间】:2017-09-02 18:05:52
【问题描述】:
考虑以下代码sn-p:
#include <chrono>
#include <cassert>
int main()
{
auto result1 = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::high_resolution_clock::now().time_since_epoch());
auto result2 = std::chrono::duration_cast<std::chrono::seconds>(std::chrono::system_clock::now().time_since_epoch());
assert((result2.count() - result1.count()) < 10);
}
我期望这两个值之间的计数差异应该很小(理想情况下小于一秒)。但是对于 VS2015,计数的差异是数十亿秒的数量级。这怎么可能?
【问题讨论】:
-
代码,如图所示,无法编译。
-
你需要包含
和 -
您的代码无效有效的演员阵容:
std::chrono::duration_cast< std::chrono::seconds >( your-time ) -
gcc 6.2.0没有错误,两者都是一样的 -
在创建 code compile 之后,我在 g++ 中得到了相同的结果,但在 MSVS 2017 中我得到了
1806453vs1491565092