std::chrono
库部分依赖于 Clock 的概念。和一个TrivialClock 。我检查了标准,但我仍然不确定一些事情:
Clock
和TrivialClock
之间的唯一区别是now
可能会抛出Clock
,但对于TrivialClock
则不然?clock::duration
是否需要与clock::time_point::duration 相同?
now
是否必须是静态函数成员?
欢迎引用/引用该标准。
最佳答案
- Is the only difference between
Clock
andTrivialClock
, the fact that now may throw for aClock
, but does not for aTrivialClock
?
没有。对TrivialClock
的成员(member)类型也有更多的要求。带有 const int
的时钟作为其 rep
不是TrivialClock
,但它是 Clock
.
- Is
clock::duration
required to be the same asclock::time_point::duration
?
是的。两个可能的实例化是 std::time_point<clock>
,其中有 clock::duration
从默认参数;或std::time_point<other_clock, clock::duration>
,其中明确指出了这一点。
- Is
now
required to be a static function member, or not?
据我所知,情况并非如此,但人们可能会认为是这样。所需要的只是 clock::now()
是一个有效的表达式,它返回 clock::time_point
。它可能是一个静态仿函数。
关于c++ - chrono 库中的 Clock 和 TrivialClock 概念,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51818177/