Явно преобразует объект std::chrono::duration
в заданную конкретизацию std::chrono::duration
.
Объявление
template
constexpr ToDuration duration_cast(
const duration& d);
Требования
ToDuration
должен быть конкретизацией std::chrono::duration
.
Возвращаемое значение
Значение d
, преобразованное к типу интервала, заданного параметром ToDuration
. При выполнении операции минимизируется потеря точности в результате преобразования интервалов с разными масштабами и типами представления.
D.1.2. Шаблон класса std::chrono::time_point
Шаблон класса std::chrono::time_point
представляет момент времени, измеренный по конкретным часам. Задается в виде интервала, прошедшего с момента эпохи данных часов. Параметр шаблона Clock
задает часы (у разных часов должны быть разные типы), а параметр Duration
— тип для измерения интервала от эпохи, который должен быть конкретизацией шаблона std::chrono::duration
. По умолчанию Duration
совпадает с подразумеваемым типом интервала, определенным в Clock
.
Определение класса
template
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
time_point(const time_point& 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
time_point(const time_point& 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
, представляющий максимально возможное для данного типа значение.
Читать дальше