稳定时钟如何与有限位时间表示相互作用?

时间:2013-04-04 16:57:20

标签: c++ c++11 chrono

20.11.7.2/1开始:

  

班级steady_clock的对象   表示time_point的值永远不会减少的时钟   物理时间提前,time_point的值在a   相对于实时的稳定率。也就是说,时钟可能不是   调整。

在概念上,这很可爱,但鉴于几乎肯定会有一些位来表示一个时间点,很难想象一个稳定时钟值的实现永远在增加。

20.11.3 / 2似乎支持我缺乏想象力,因为它(在一个非规范性的说明中)指的是一个时钟"环绕。"这表明,如果我从同一个稳定时钟中取出time_point t1和后来的time_point t2t2可能会更早出现,因为时钟可能包含在{{1}之间}和t1

我觉得很难理解这方面的标准。有人可以提供关于稳定时钟和时钟包装的关系和相互作用的清晰度吗?

1 个答案:

答案 0 :(得分:3)

请在实际见证steady_clock翻转时提交错误报告。在我的系统上,如果我在接下来的292年没有重新启动计算机,那将会发生在2305年。很抱歉,如果我当时没有回复。 : - )

在旁边开玩笑,需要实现支持足够大的位长度,使得在实际持续时间期间不能观察到时钟翻转。从计算机启动开始计算64位整数的纳秒是一个合理的实现。