C++ 在没有单调时钟的系统上,一致性实现是不可能的吗?

C++ 在没有单调时钟的系统上,一致性实现是不可能的吗?,c++,time,c++11,implementation,chrono,C++,Time,C++11,Implementation,Chrono,“头定义了类static\u clock,它表示单调时钟——也就是说,随着物理时间的增加,now()的值永不减小。但是这个类没有被标记为可选的,所以如果实现无法实现它,因为它运行在没有单调时间源的系统上,会发生什么呢 查看libstdc++源代码,在未定义\u GLIBCXX\u USE\u CLOCK\u monotic的情况下,稳定的\u CLOCK的定义如下: typedef system_clock steady_clock; 系统时钟不一定是稳定的,因此这可能(也可能会)打破稳定时钟

头定义了类
static\u clock
,它表示单调时钟——也就是说,随着物理时间的增加,
now()
的值永不减小。但是这个类没有被标记为可选的,所以如果实现无法实现它,因为它运行在没有单调时间源的系统上,会发生什么呢

查看libstdc++源代码,在未定义
\u GLIBCXX\u USE\u CLOCK\u monotic
的情况下,
稳定的\u CLOCK
的定义如下:

typedef system_clock steady_clock;
系统时钟
不一定是稳定的,因此这可能(也可能会)打破
稳定时钟
的要求


在没有单调时间源的系统上,C++11的一致性实现是不可能的吗?为什么不让
稳定的时钟
intX\u t
类型那样可选呢?

我想这样的系统应该是某种嵌入式系统

好的,这样的系统可以有独立的实现,只需要标准库的最小子集<代码>不是该最小子集的一部分

这在§17.6.1.3独立实施[合规性]中有定义:

1定义了两种实现:托管和独立(1.4)。对于托管实现,此 国际标准描述了可用标题集

2独立实现有一组由实现定义的头文件。该套应至少包括: 标题如表16所示

表16包含以下标题:
,以及


请注意,这并不意味着这样的实现不能提供一个包含所有可以在其中实现的内容的
头,但不能提供其余内容。

是否有系统无法实现单调时钟?该死,现在我认为这是一个愚蠢的问题。我想我是这么想的。是的,有这样的系统。我有一个不需要任何时间源的系统。这相当于在公认的答案之上问“西红柿上不可能实现一致性实现吗?”即使在没有稳定时钟的系统上实现单调时钟也可以:have
stable\u clock
跟踪最后返回的时间值。如果当前值为“before”,则只返回最后一个值。诚然,这并不理想,但是
now()
的值永远不会随着物理时间的增加而减少。