chrono库中的Clock和TrivialClock概念

时间:2018-08-13 08:32:02

标签: c++ language-lawyer c++17 chrono c++-concepts

std::chrono库在某种程度上依赖于ClockTrivialClock的概念。我通过了标准,但是我仍然不确定几件事:

  • ClockTrivialClock之间的唯一区别是now可能会为Clock抛出而不会为TrivialClock抛出的事实吗? / li>
  • clock::duration是否必须与clock::time_point::duration?相同
  • 是否需要now是静态函数成员?

欢迎引用/引用该标准。

1 个答案:

答案 0 :(得分:4)

  
      
  • ClockTrivialClock之间唯一的区别是,现在可能会为Clock抛出但不会为TrivialClock抛出的事实吗?
  •   

不。对TrivialClock的成员类型也有更多要求。以const int作为rep的时钟不是TrivialClock,而是Clock

  
      
  • clock::duration是否必须与clock::time_point::duration相同?
  •   

是的。两种可能的实例是std::time_point<clock>,它的默认参数为clock::duration。或std::time_point<other_clock, clock::duration>(具有显式名称)。

  
      
  • 是否需要now是静态函数成员?
  •   

据我所知,人们可能会认为是。要使clock::now()是一个有效的表达式,它只返回一个clock::time_point。可能是静态函子。