是否有标准库实现,其中高分辨率时钟不是typedef? C++草案PAR 20.127.3读取:

是否有标准库实现,其中高分辨率时钟不是typedef? C++草案PAR 20.127.3读取:,c++,chrono,C++,Chrono,高分辨率时钟可能是系统时钟或稳定时钟 当然可能什么都没有,但我想知道: 对于typedef以外的东西,高分辨率时钟有什么意义吗 有这样的实现吗 如果设计了一个滴答周期较短的时钟,它可以是稳定的,也可以是不稳定的。因此,如果存在这样一种机制,我们难道不想“改进”系统时钟和高分辨率时钟,再次默认使用typedef解决方案吗 规范中有“可以”和“可以”等措辞,以及其他允许其他可能性的模糊词语,其原因在于规范编写者不希望(不必要地)限制某事物“更好”解决方案的实施 设想一个系统,其中时间通常以秒为单位

高分辨率时钟
可能是
系统时钟
稳定时钟

当然可能什么都没有,但我想知道:


  • 对于typedef以外的东西,
    高分辨率时钟
    有什么意义吗
  • 有这样的实现吗
  • 如果设计了一个滴答周期较短的时钟,它可以是稳定的,也可以是不稳定的。因此,如果存在这样一种机制,我们难道不想“改进”系统时钟和高分辨率时钟,再次默认使用
    typedef
    解决方案吗
规范中有“可以”和“可以”等措辞,以及其他允许其他可能性的模糊词语,其原因在于规范编写者不希望(不必要地)限制某事物“更好”解决方案的实施

设想一个系统,其中时间通常以秒为单位,而
系统时钟
正是如此-
系统时钟::周期
将返回1秒。此时间存储为单个64位整数

现在,在同一个系统中,也有以纳秒为单位的时间,但它存储为128位整数。由于这种大整数格式,结果的时间计算稍微复杂一些,对于时间只需要1s精度的人(在一个时间计算量很大的系统中),当系统不需要时,你不希望有额外的惩罚使用
高精度时钟

至于现实生活中是否有这样的事情,我不确定。关键是,如果您愿意实施该标准,那么它不会违反该标准

请注意,稳定在很大程度上是“当系统改变时间时会发生什么”的属性(例如,如果外部网络已关闭数天,并且系统中的内部时钟已从网络时间更新到的原子时钟漂移)。使用
稳定时钟
将确保时间不会突然向后或向前跳25秒。同样,当计算机系统中存在“闰秒”或类似的时间调整时,也没有问题。另一方面,
系统时钟
保证给你正确的新时间,如果你给它一个超过夏令时的前向持续时间,或者一些类似的时间,
稳定的时钟
只会一小时接一小时地滴答作响。因此,选择其中正确的一个会影响在数字电视录像机中录制您喜爱的节目-
稳定时钟
会在错误的时间录制[我的数字电视录像机几年前犯了这个错误,但他们现在似乎已经修复了它]

系统时钟
还应考虑用户(或系统管理员)更改系统时钟的情况,
稳定时钟
不应这样做

再次,代码> HyLeRealPosithCalpule可能或不可能是“代码>稳定< /代码> -这取决于C++库的实现者对<代码> ISHORACTION<代码>的适当响应。


的4.9.2版本中,我们发现这
使用高分辨率时钟=系统时钟
,因此在本例中,它是一个直接的
typedef
(使用不同的名称)。但是该规范并不要求这样。

“高分辨率时钟是否有必要与typedef不同?”防止您不可移植地混合不同时钟的时间点,也许?@t.C。尽管在每个现有的实现中,它都是typedef。所以你说的话只突出了一个可能存在的问题。我开始相信高分辨率时钟是我的错误。但我必须承认,这是一个很好的理由来保持它。不过,如果我有128位可玩,我会选择皮秒而不是纳秒+1.是的,皮秒时钟可以在128位下工作几千年,不是吗…@HowardHinnant这种假想的想法是为了找出某件事情背后的原因,但对我的问题没有多大帮助。那么在现实生活中的编码中,有什么好的写作吗?@LorahAttkins:我知道没有一个实现将
高分辨率时钟
作为单独的类型来实现。因此,我一直建议人们使用
稳定时钟
系统时钟
(或他们的定制时钟)<代码>稳定时钟
在您需要秒表时是最佳选择<如果您需要一个具有跨进程含义的时间戳,则必须使用代码>系统时钟。