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推断,我不需要任何其他内容。
问题:什么错了,我该如何解决?
答案 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 ++以外的库。