【发布时间】:2013-07-01 13:45:51
【问题描述】:
我想知道自纪元以来的毫秒数。一个流行的解决方案如下(这里提出的这个问题的解决方案之一Get time since epoch in milliseconds, preferably using C++11 chrono)
#include <iostream>
#include <chrono>
int main() {
auto millitime = std::chrono::duration_cast<std::chrono::milliseconds>
(std::chrono::system_clock::now().time_since_epoch()).count();
std::cout << millitime << std::endl;
return 0;
}
通过调用g++(如g++ -std=c++11 main.cpp -o timetest)来编译它会产生输出
1372686001
等于自纪元以来的秒数!
这是 glibc 中的错误吗?在 g++ 中?我的错?
g++ (Debian 4.7.3-4) 4.7.3
ldd (Debian EGLIBC 2.17-6) 2.17
更新:它在使用 g++ 4.8 时有效。所以这是一个 gcc 错误?!
g++-4.8 (Debian 4.8.1-2) 4.8.1
【问题讨论】:
-
在这里工作正常:coliru.stacked-crooked.com/…
-
@R.MartinhoFernandes 你使用相同的 g++ 和 glibc 版本吗?
-
我编辑了链接以包含
g++ -v的输出(它是 4.8.1)。这意味着如果它是一个错误,它是固定的。 -
代码在GCC 4.7.2下正常工作
-
@R.MartinhoFernandes 感谢您给了我使用 g++ 4.8
;)的想法。我会将 g++ 更改为默认指向版本 4.8 - 这应该可以解决我的问题。我还不知道在哪里,但也许我应该报告这个错误(现在看来相当肯定,这是由于 gcc v4.7.3)