23 General utilities library [utilities]

23.17 Time utilities [time]

23.17.3 Clock requirements [time.clock.req]

Часы - это связка, состоящая из a duration, a time_­pointи функции now() для получения тока time_­point. Происхождение часов time_­point называется часами epoch. Часы должны соответствовать требованиям таблицы 52.

В таблице 52 C1 и цвет, C2 обозначают типы тактовых импульсов. t1 и t2 являются значениями, возвращаемыми тем C1​::​now() местом, где вызов возвращает возвращаемый t1 happens before вызов, t2 и оба этих вызова произошли раньше C1​::​time_­point​::​max(). [ Note: Это означает, C1 что не нужно переходить между t1 и t2. ] end note

Таблица 52 - Требования к часам
ВыражениеТип возвратаОперационная семантика
C1​::​rep Арифметический тип или класс, имитирующий арифметический тип Тип представления C1​::​duration.
C1​::​period специализация ratio Период тика часов в секундах.
C1​::​duration chrono​::​duration<C1​::​rep, C1​::​period> duration Тип часов.
C1​::​time_­point chrono​::​time_­point<C1> или chrono​::​time_­point<C2, C1​::​duration> time_­point Тип часов. C1 и C2 будет относиться к той же эпохе.
C1​::​is_­steady const bool true если t1 <= t2 всегда, true а время между тактами часов постоянно, в противном случае false.
C1​::​now() C1​::​time_­point Возвращает time_­point объект, представляющий текущий момент времени.

[ Note: Относительная разница в продолжительности между теми, о которых сообщают данные часы и определение SI, является мерой качества реализации. ] end note

Тип TC соответствует TrivialClock требованиям, если:

  • TC удовлетворяет Clock requirements,

  • типы TC​::​rep, TC​::​durationи TC​::​time_­point удовлетворяют требования EqualityComparable, LessThanComparable, DefaultConstructible, CopyConstructible, CopyAssignable, Destructible, и требование о numeric types. [ Note: Это, в частности, означает, что операции с этими типами не вызывают исключений. ] end note

  • lvalues этих типов TC​::​rep, TC​::​durationи TC​::​time_­point являются swappable,

  • функция TC​::​now() не генерирует исключений и

  • тип TC​::​time_­point​::​clock соответствует TrivialClock требованиям, рекурсивно.