Читать «Параллельное программирование на С++ в действии. Практика разработки многопоточных программ» онлайн - страница 437

Энтони Уильямс

 std::ratio<1000000001,1000000000> >::value == true

std::ratio_less<

 std::ratio<1000000001,1000000000>,

 std::ratio<999999999,1000000000> >::value == false

D.6.9. Шаблон класса std::ratio_greater

Шаблон класса std::ratio_greater предоставляет механизм сравнения двух значений std::ratio на этапе компиляции с применением правил арифметических операций с рациональными числами.

Определение класса

template <class R1, class R2>

class ratio_greater:

 public std::integral_constant<

  bool, ratio_less<R2, R1>::value> {};

Предусловия

R1 и R2 должны быть конкретизациями шаблона std::ratio.

D.6.10. Шаблон класса std::ratio_less_equal

Шаблон класса std::ratio_less_equal предоставляет механизм сравнения двух значений std::ratio на этапе компиляции с применением правил арифметических операций с рациональными числами.

Определение класса

template <class R1, class R2>

class ratio_less_equal:

 public std::integral_constant<

  bool, !ratio_less<R2, R1>::value> {};

Предусловия

R1 и R2 должны быть конкретизациями шаблона std::ratio.

D.6.11. Шаблон класса std::ratio_greater_equal

Шаблон класса std::ratio_greater_equal предоставляет механизм сравнения двух значений std::ratio на этапе компиляции с применением правил арифметических операций с рациональными числами.

Определение класса

template <class R1, class R2>

class ratio_greater_equal:

 public std::integral_constant<

  bool, !ratio_less<R1,R2>::value> {};

Предусловия

R1 и R2 должны быть конкретизациями шаблона std::ratio.

D.7. Заголовок <thread>

В заголовке <thread> объявлены средства для идентификации и управления потоками, а также функции для приостановки потоков.

Содержимое заголовка

namespace std {

class thread;

namespace this_thread {

thread::id get_id() noexcept;

void yield() noexcept;

template<typename Rep, typename Period>

void sleep_for(

 std::chrono::duration<Rep, Period> sleep_duration);

template<typename Clock, typename Duration>

void sleep_until(

 std::chrono::time_point<Clock, Duration> wake_time);

}