Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/159.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ chrono:稳定的时钟&x27;确定了哪些代表和期间类型?_C++_Clock_Duration_Chrono - Fatal编程技术网

C++ chrono:稳定的时钟&x27;确定了哪些代表和期间类型?

C++ chrono:稳定的时钟&x27;确定了哪些代表和期间类型?,c++,clock,duration,chrono,C++,Clock,Duration,Chrono,由4种成员类型组成:rep、period、duration和timepoint chrono::stable\u clock::duration是一种chrono::duration。 chrono::stable\u clock::period是一个比率 如何确定chrono::staid_clock::duration和chrono::staid_clock::period的类型 比如说, chrono::stable\u clock::duration可以是chrono::duration

由4种成员类型组成:
rep
period
duration
timepoint

chrono::stable\u clock::duration
是一种
chrono::duration
chrono::stable\u clock::period
是一个
比率

如何确定
chrono::staid_clock::duration
chrono::staid_clock::period
的类型

比如说,

chrono::stable\u clock::duration
可以是
chrono::duration
其中period是
比率


chrono::stable\u clock::duration
可以是
chrono::duration
,其中period是
比率
标准未规定
rep
period
。每个标准库实现都可以选择自己的实现。如果他们使用的底层计时调用的精度为100ns,那么选择
std::ratio
的周期似乎是个好主意

这些类型中有一些必须满足,但基本上取决于实现

duration
始终仅基于
rep
period
<代码>标准::计时::持续时间

chrono::稳定时钟由4种成员类型组成:
rep
期间
持续时间
时间点

chrono::stead_clock::duration
是一个
chrono::duration
chrono::stable\u clock::period
是一个
比率

时钟的类型是怎样的
chrono::稳定的时钟::周期
确定了吗

它们在某种程度上是特定于实现的,但在这些类型中确实存在约束和不变量

1.
rep
必须是一种性能良好的算术类型。它必须有一个默认构造函数、复制构造函数、复制赋值,并且它具有非意外的语义,并且不会抛出异常。事实上的标准是所有的
稳定时钟::rep
都是有符号整数64位类型

2.
期间
几乎悬而未决。也就是说,VS、libstdc++和libc++都将
稳定的时钟::周期
设置为
nano

3.
duration
必须与
rep
period
有非常具体的关系:
是相同的{}
正确的类型
。如果您首先指定
duration
,然后从中派生
rep
period
,或者从中派生
period
,则没有多大关系。但不变量必须保持不变


4.
time\u point
应为
std::chrono::time\u point
的实例,持续时间为
持续时间。未指定
时间点
的时钟是什么。无论该时钟是什么类型,它必须与
稳定时钟
具有相同的历元。这可以说是一个缺陷,应该有一个约束,即
稳定的时钟::时间点::时钟
稳定的时钟
。事实上的标准是这个约束是成立的。

因此,如果我使用Visual Studio并且我使用
#include
,这是否意味着
chrono
是由Microsoft实现的?std::chrono::时钟需要有基于签名整数类型的时间点/持续时间,其范围至少为+/-292年。此要求不适用于程序员定义的时钟。