Параллельное программирование на С++ в действии. Практика разработки многопоточных программ - [170]

Шрифт
Интервал

Объявление

>template

>constexpr bool operator<=(

> const duration& lhs,

> const duration& rhs);

Требования

Либо для >lhs определено неявное преобразование в >rhs, либо наоборот. Если ни одна из частей не может быть неявно преобразовала в другую или они являются различными представлениями >duration, но каждая может быть неявно преобразована в другую, то выражение построено некорректно.

Возвращаемое значение

>!(rhs>lhs)

>STD::CHRONO::DURATION, ОПЕРАТОР СРАВНЕНИЯ БОЛЬШЕ ИЛИ РАВНО

Проверяет, что один объект >duration больше или равен другому, даже если они имеют разные представления и (или) периоды.

Объявление

>template

>constexpr bool operator>=(

> const duration& lhs,

> const duration& rhs);

Требования

Либо для >lhs определено неявное преобразование в >rhs, либо наоборот. Если ни одна из частей не может быть неявно преобразована в другую или они являются различными представлениями >duration, но каждая может быть неявно преобразована в другую, то выражение построено некорректно.

Возвращаемое значение

>!(lhs

>STD::CHRONO::DURATION_CAST, ФУНКЦИЯ, HE ЯВЛЯЮЩАЯСЯ ЧЛЕНОМ КЛАССА

Явно преобразует объект >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, СТАТИЧЕСКАЯ ФУНКЦИЯ-ЧЛЕН

Получает объект


Еще от автора Энтони Д Уильямс
Викиномика. Как массовое сотрудничество изменяет всё

Это знаменитый бестселлер, который научит вас использовать власть массового сотрудничества и покажет, как применять викиномику в вашем бизнесе. Переведенная более чем на двадцать языков и неоднократно номинированная на звание лучшей бизнес-книги, "Викиномика" стала обязательным чтением для деловых людей во всем мире. Она разъясняет, как массовое сотрудничество происходит не только на сайтах Wikipedia и YouTube, но и в традиционных компаниях, использующих технологии для того, чтобы вдохнуть новую жизнь в свои предприятия.Дон Тапскотт и Энтони Уильямс раскрывают принципы викиномики и рассказывают потрясающие истории о том, как массы людей (как за деньги, так и добровольно) создают новости, изучают геном человека, создают ремиксы любимой музыки, находят лекарства от болезней, редактируют школьные учебники, изобретают новую косметику, пишут программное обеспечение и даже строят мотоциклы.Знания, ресурсы и вычислительные способности миллиардов людей самоорганизуются и превращаются в новую значительную коллективную силу, действующую согласованно и управляемую с помощью блогов, вики, чатов, сетей равноправных партнеров и личные трансляции.


Рекомендуем почитать
Программное обеспечение и его разработка

Автор книги — американский специалист по программированию, один из руководителей фирмы IBM, в своей книге делает попытку изложить общие проблемы создания программного обеспечения, его сопровождения и использования. Особенно подробно рассматриваются все фазы разработки программ разных типов. Изложение ясное, удачно иллюстрировано примерами.Для программистов разной квалификации и пользователей ЭВМ.fb2: ВНИМАНИЕ. В тексте присутствуют таблицы. Рекомендуется читать файл с помощью программы, поддерживающей их отображение.


Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Программирование приложений для мобильных устройств под управлением Android. Часть 1

Книга посвящена разработке программ для мобильных устройств под управлением операционной системы Android. Рассматривается создание приложений с использованием системных компонентов и служб Android. Приведены базовые данные о структуре приложений, об основных классах и их методах, сопровождаемые примерами кода. Часть 1 содержит шесть глав, описывающих основные принципы создания приложений, пользовательский интерфейс, полномочия приложений, а так же базовые классы: Activity, Intent, Fragment. Книга предназначена для программистов, владеющих языком программирования Java и желающих освоить написание приложений, работающих под ОС Android.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


FreeBSD - полезные советы

В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.


Тонкости дизассемблирования

Очень часто под рукой не оказывается ни отладчика, ни дизассемблера, ни даже компилятора, чтобы набросать хотя бы примитивный трассировщик. Разумеется, что говорить о взломе современных защитных механизмов в таких условиях просто смешно, но что делать если жизнь заставляет?..