g ++ 4.8。* std :: chrono Undeclared

时间:2014-11-24 18:32:44

标签: c++11 gcc

g++ 4.8.*应支持

std::chrono。但是,当我尝试使用g++ 4.8.3进行编译时,它找不到各种声明。我当然是使用-std=c++11

例如此调用(来自自动生成的文件;这就是-std出现两次的原因):

  

g ++ - 4.8 -g -msse2 -m64< definitions> <警告> -std = c ++ 11 -fexceptions -std = c ++ 11< includes' -path> -c< source-file.cpp> -o< out-path>

产生此错误:

  

< source-file,line>:错误:'std :: chrono :: monotonic_clock'尚未声明

我无法找到不是编译器版本或缺少-std=c++11的{​​{3}} very。通过much推断,我不需要任何其他内容。

问题:什么错了,我该如何解决?

2 个答案:

答案 0 :(得分:2)

标准C ++中没有std::chrono::monotonic_clock。但是有一个std::chrono::steady_clock

公平对待微软 - 以及到处都是墨西哥卷饼 - there was a monotonic_clock in the working drafts during the development of C++11 which was replaced by steady_clock

答案 1 :(得分:1)

在我看来,您可以使用这样的代码来确定您是使用旧的库实现(提供monotonic_clock但不提供steady_clock)还是使用新的提供{{ 1}}但可能不是steady_clock)。

monotonic_clock

上面的日期戳对应于GCC 4.7.0附带的libstdc ++,according to GNU。我欢迎对此代码进行任何改进或更正,例如支持libstdc ++以外的库。