35.2 时间

在<chrono>中,标准库提供了处理时间段和时间点的组件。所有chrono组件都在(子)命名空间std::chrono中,因此我们必须用chrono::显式限定名字或使用using指示:

我们通常希望对某事计时或做某些依赖于时间的事情。例如,标准库互斥量和锁提供了让thread等待一段时间(duration)或等待到给定时刻(time_point)的选项。

如果你希望获得当前的time_point,可以对3种时钟之一调用now():system_clock、steady_clock和high_resolution_clock。例如:

时钟返回一个time_point,一个duration就是相同时钟的两个time_point间的距离。照例,如果你对细节不感兴趣,auto会是你的好帮手:

时间组件的设计目的之一是支持在系统深层中的高效使用;它们不提供社交日历便利维护这类组件。实际上,时间组件源自高能物理的迫切需求。

事实已证明“时间”并不像我们通常想象的那样容易处理。例如,闰秒问题、时钟不准及其调整问题(可能导致时钟报告的时间滞后)、时钟不同精度问题,等等。而且,处理短时间间隔(如纳秒)的组件本身不能花费很长时间。因此,chrono组件本身并不简单,但这些组件的很多应用却可以非常简单。 ...

Get C++程序设计语言(第4部分:标准库)(原书第4版) now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.