D.1.2. Шаблон класса std::chrono::time_point
Шаблон класса std::chrono::time_point представляет момент времени, измеренный по конкретным часам. Задается в виде интервала, прошедшего с момента эпохи данных часов. Параметр шаблона Clock задает часы (у разных часов должны быть разные типы), а параметр Duration — тип для измерения интервала от эпохи, который должен быть конкретизацией шаблона std::chrono::duration. По умолчанию Duration совпадает с подразумеваемым типом интервала, определенным в Clock.
Определение класса
template <class Clock, class Duration = typename Clock::duration>
class time_point {
public:
typedef Clock clock;
typedef Duration duration;
typedef typename duration::rep rep;
typedef typename duration::period period;
time_point();
explicit time_point(const duration& d);
template <class Duration2>
time_point(const time_point<clock, Duration2>& t);
duration time_since_epoch() const;
time_point& operator+=(const duration& d);
time_point& operator-=(const duration& d);
static constexpr time_point min();
static constexpr time_point max();
};
STD::CHRONO::TIME_POINT , КОНСТРУКТОР ПО УМОЛЧАНИЮ
Конструирует объект time_point, представляющий эпоху часов Clock; внутренний интервал инициализируется значением Duration::zero().
Объявление
time_point();
Постусловие
Для сконструированного по умолчанию объекта tp типа time_point имеет место равенство tp.time_since_epoch() == tp::duration::zero().
STD::CHRONO::TIME_POINT , КОНСТРУКТОР ИЗ ИНТЕРВАЛА
Конструирует объект time_point, представляющий заданный интервал от эпохи часов Clock.
Объявление
explicit time_point(const duration& d);
Постусловие
Для объекта tp типа time_point, созданного конструктором tp(d) из некоторого интервала d, имеет место равенство tp.time_since_epoch() == d.
STD::CHRONO::TIME_POINT , КОНВЕРТИРУЮЩИЙ КОНСТРУКТОР
Конструирует объект time_point из другого объекта time_point с таким же типом Clock, по другим типом Duration.
Объявление
template <class Duration2>
time_point(const time_point<clock, Duration2>& t);
Требования
Для типа Duration2 должно существовать неявное преобразование в тип Duration.
Результат
Эквивалентно выражению time_point(t.time_since_epoch()).
Значение, возвращенное функцией t.time_since_epoch() неявно преобразуется в объект типа Duration, который сохраняется в новом объекте типа time_point.
STD::CHRONO::TIME_POINT::TIME_SINCE_EPOCH , ФУНКЦИЯ-ЧЛЕН
Возвращает интервал от эпохи часов для данного объекта типа time_point.
Объявление
duration time_since_epoch() const;
Возвращаемое значение
Значение duration, хранящееся в *this.
STD::CHRONO::TIME_POINT::OPERATOR+= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Прибавляет указанный интервал duration к значению, хранящемуся в данном объекте time_point.
Объявление
time_point& operator+=(const duration& d);
Результат
Прибавляет d к внутреннему интервалу *this, эквивалентно this->internal_duration += d.
Возвращаемое значение
*this
STD::CHRONO::TIME_POINT::OPERATOR-= , СОСТАВНОЙ ОПЕРАТОР ПРИСВАИВАНИЯ
Вычитает указанный интерфейс duration из значения, хранящегося в данном объекте time_point.
Объявление
time_point& operator-=(const duration& d);
Результат
Вычитает d из внутреннего интервала *this, эквивалентно this->internal_duration -= d.
Возвращаемое значение
*this
STD::CHRONO::TIME_POINT::MIN , СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН
Получает объект time_point, представляющий минимально возможное для данного типа значение.
Объявление
static constexpr time_point min();
Возвращаемое значение
time_point(time_point::duration::min()) (см. 11.1.1.15)
STD::CHRONO::TIME_POINT::MAX, СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН
Получает объект time_point, представляющий максимально возможное для данного типа значение.
Объявление
static constexpr time_point max();
Возвращаемое значение
time_point(time_point::duration::max()) (см. 11.1.1.16)