Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
Класс
Измеряет интервал времени, например одну минуту, два часа, десять миллисекунд и т. д.
Содержит duration интервал времени, который является числом тиков за единицу времени. Например, пять минут составляет пять галок, с каждым тиком в минуту друг от друга. 42 секунды — 42 галочки, каждый из которых за секунду раздается.
Синтаксис
template <class Rep, class Period> class duration;
template <class Rep, class Period = ratio<1>> class duration;
template <class Rep, class Period1, class Period2> class duration <duration<Rep, Period1>, Period2>;
Замечания
Аргумент шаблона Rep описывает тип, используемый для удержания числа тактов в интервале. Аргумент Period шаблона — это экземпляр ratio , описывающий размер интервала, который представляет каждый галок.
Участники
Конструкторы
| Имя | Описание |
|---|---|
duration |
Формирует объект duration. |
Функции
| Имя | Описание |
|---|---|
count |
Возвращает количество тактов в интервале времени. |
max |
Статическая. Возвращает максимальное допустимое значение параметра-шаблона Rep. |
min |
Статическая. Возвращает минимально допустимое значение параметра-шаблона Rep. |
zero |
Статическая. Фактически возвращает Rep(0). |
Операторы
| Имя | Описание |
|---|---|
duration::operator- |
Возвращает копию duration объекта с отрицанием числа галок. |
duration::operator-- |
Уменьшает на единицу накопленный счетчик тактов. |
duration::operator-= |
Вычитает число галок указанного duration из сохраненного числа галок. |
duration::operator+ |
Возвращает *this. |
duration::operator++ |
Увеличивает на единицу накопленный счетчик тактов. |
duration::operator+= |
Добавляет число галок указанного duration в хранимое число галок. |
duration::operator= |
Назначает одну длительность другой. |
duration::operator*= |
Умножает накопленный счетчик тактов на указанное значение. |
duration::operator/= |
Делит накопленный счетчик тактов на счетчик тактов указанного объекта duration. |
duration::operator%= |
Уменьшает накопленный счетчик тактов по модулю на указанное значение. |
Не являющиеся членами
Шаблоны функций
| Имя | Описание |
|---|---|
abs |
Возвращает абсолютное значение durationобъекта . |
ceil |
Возвращает наименьшее представление duration , которое больше или равно указанному duration. |
duration_cast |
Приведение duration объекта к указанному целевому duration типу. |
floor |
Возвращает наибольшее представлениеduration, которое меньше или равно указанному.duration |
from_stream |
Синтаксический duration анализ из заданного потока с помощью указанного формата. |
round |
Округляет указанный duration до ближайшего представления duration в целевом типе. |
Операторы
| Имя | Описание |
|---|---|
operator+ |
После преобразования длительности, добавляемой в их общий тип, возвращает duration значение с числом галок, равным сумме преобразованных счетчиков галок. |
operator- |
После преобразования длительности, вычитаемой в их общий тип, возвращает duration число галок, равное числу галок в RHS duration , вычитаемого из числа галок в LHS duration. |
operator* |
После преобразования длительности, умноженной на их общий тип, возвращает duration значение с числом галок, равным умножению преобразованных счетчиков галок. |
operator/ |
После преобразования длительности, разделенной на их общий тип, возвращает duration значение с числом галок, равным делении преобразованного числа галок. |
operator% |
После преобразования duration делителя в их общий тип возвращает duration значение с числом галок, равным оставшейся части деления. |
operator== |
После преобразования duration типов, сравниваемых с их общим типом, определяет, равно ли количество галок. |
operator!= |
Определите, не равно ли duration другому. |
operator< |
Определите, меньше ли одно duration значение, чем другое. |
operator<= |
Определите, duration меньше ли одно или равно другому. |
operator> |
Определите, больше ли один duration из них. |
operator>= |
Определите, duration больше ли одно или равно другому. |
operator<=> |
Сравните друг duration с другом duration. Операторы >, >=, <=, <, != синтезируются компилятором. |
operator<< |
Выводит объект в заданный duration поток. |
Псевдонимы удобных типов
| Имя | Описание |
|---|---|
duration::period |
Синоним параметра шаблона Period. |
duration::rep |
Синоним параметра шаблона Rep. |
Требования
Заголовок: <chrono>
Пространство имен: std::chrono
duration::count
Получает количество тактов в интервале времени.
constexpr Rep count() const;
Возвращаемое значение
Количество тактов в интервале времени.
Конструктор duration::duration
Формирует объект duration.
1) constexpr duration() = default;
2) constexpr duration(const duration& d) = default;
3) template <class Rep2>
constexpr explicit duration(const Rep2& R);
4) template <class Rep2, class Period2>
constexpr duration(const duration<Rep2, Period2>& Dur);
Параметры
Dur
Количество тактов в периоде, указанном в Period2.
Period2
Специализация шаблона std::ratio для представления тактового периода в секундах.
R
Количество тактов в периоде по умолчанию.
Rep2
Арифметический тип для представления числа тактов.
Замечания
1) Конструктор по умолчанию создает объект, который неинициализирован. Инициализация значения с помощью пустых фигурных скобок инициализирует объект, представляющий интервал времени нулевых тактов.
2) Конструктор копирования делает побитовую копию d.
3) Создает объект, представляющий интервал времени часов, R используя период std::ratio<1>по умолчанию. Чтобы избежать округления чисел, это ошибка, чтобы создать объект длительности из типа Rep2 представления, который можно рассматривать как тип с плавающей запятой, когда duration::rep нельзя рассматривать как тип с плавающей запятой.
4) Создает объект, представляющий интервал времени, длина которого — интервал времени, указанный в параметре Dur. Чтобы избежать усечения счетчиков галок, это ошибка, чтобы создать объект длительности из другого объекта длительности, тип которого является несовместимым с целевым типом.
Тип D1 длительности несовместим с другим типом D2 длительности, если D2 его нельзя рассматривать как тип с плавающей запятой и ratio_divide<D1::p eriod, D2::p eriod>::type::d en не равен 1.
Если неявно rep преобразуется в иtreat_as_floating_point<rep> содержит значение true или treat_as_floating_point<Rep2>содержит значение false, второй конструктор не участвует в разрешении перегрузки.Rep2 Дополнительные сведения см. в type_traits><.
Если при преобразовании не вызывается переполнение и treat_as_floating_point<rep>имеет значение true, либо ratio_divide<Period2, period>::den оба равно 1 и treat_as_floating_point<Rep2>содержат значение false, третий конструктор не участвует в разрешении перегрузки. Дополнительные сведения см. в type_traits><.
Пример. Создание duration
// compile using: /std:c++latest
#include <iostream>
#include <chrono>
using namespace std::chrono;
int main()
{
// create a duration that tracks ticks as 1/10ths of a second
duration<int, std::ratio<1, 10>> tenths{ 5 };
std::cout << tenths << '\n';
hours h{12}; // hours is a convenience duration typedef
auto h2 = 3h; // 'h' is a convenience operator. h2 is a duration<int, std::ratio<3600,1>>
std::cout << h << ":" << h2 << '\n';
return 0;
}
5ds
3h:3h
duration::max
Статический метод, который возвращает верхнюю границу значений типа параметра-шаблона Rep.
static constexpr duration max();
Возвращаемое значение
Фактически возвращает duration(duration_values<rep>::max()).
duration::min
Статический метод, который возвращает нижнюю границу значений типа параметра-шаблона Rep.
static constexpr duration min();
Возвращаемое значение
Фактически возвращает duration(duration_values<rep>::min()).
duration::operator-
Возвращает копию duration объекта с отрицанием числа галок.
constexpr duration operator-() const;
duration::operator--
Уменьшает на единицу накопленный счетчик тактов.
1) duration& operator--();
2) duration operator--(int);
Возвращаемое значение
1) Возвращает *this.
2) Возвращает копию *this до уменьшения.
duration::operator%=
Уменьшает хранимый счетчик галок по модуле указанного значения.
1) duration& operator%=(const rep& Div);
2) duration& operator%=(const duration& Div);
Параметры
Div
1) Div число галок.
2) Div значение duration , содержащее число галок.
Возвращаемое значение
Объект duration после выполнения операции модуля.
duration::operator*=
Умножает накопленный счетчик тактов на указанное значение.
duration& operator*=(const rep& Mult);
Параметры
Mult
Значение типа, которое задается параметром duration::rep.
Возвращаемое значение
Объект duration после умножения выполняется.
duration::operator/=
Делит накопленный счетчик тактов на указанное значение.
duration& operator/=(const rep& Div);
Параметры
Div
Значение типа, которое задается параметром duration::rep.
Возвращаемое значение
Объект duration после завершения деления.
duration::operator+
Возвращает *this.
constexpr duration operator+() const;
Возвращаемое значение
*this
duration::operator++
Увеличивает на единицу накопленный счетчик тактов.
1) duration& operator++();
2) duration operator++(int);
Возвращаемое значение
1) Возвращает *this.
2) Возвращает копию *this до увеличения.
duration::operator+=
Добавляет счетчик тактов указанного объекта duration к накопленному счетчику тактов.
duration& operator+=(const duration& Dur);
Параметры
Dur
Объект duration.
Возвращаемое значение
Объект duration после добавления.
duration::operator-=
Вычитает счетчик тактов указанного объекта duration из накопленного счетчика тактов.
duration& operator-=(const duration& Dur);
Параметры
Dur
Объект duration.
Возвращаемое значение
Объект duration после завершения вычитания.
duration::zero
Возвращает duration(duration_values<rep>::zero()).
static constexpr duration zero();
duration::operator=
Назначает одну длительность другой.
duration& operator=(const duration &other) = default;
Параметры
other
Копируемый объект duration.
Возвращаемое значение
Объект LHS duration .
См. также
<chrono>
Удобные duration типдефы, такие как minutes, secondsи многое другое
Удобные литералы в течение часов, минут и многое другое
Структура duration_values
Справочник по файлам заголовков