std::ratio во втором параметре std::chrono::duration. Отношение std::ratio<60> означает шестьдесят секунд на тик.">
Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗cpSpTmRt 333 of 696 menu
◀ ▶

Своя единица длительности в C++

Длину одного тика как долю секунды задает std::ratio во втором параметре std::chrono::duration.

Отношение std::ratio<60> означает шестьдесят секунд на тик - то же, что у минуты, но имя типа остается вашим. Объявим такую длительность, запишем значение и выведем счетчик:

#include <chrono> #include <iostream> using tick_min = std::chrono::duration<int, std::ratio<60>>; tick_min gap{3}; std::cout << gap.count() << "\n";

Счетчик 3 читается как три шестидесятисекундных тика; приведения к std::chrono::seconds по-прежнему делают через duration_cast, когда понадобится общая единица.

Опишите using step = std::chrono::duration<int, std::ratio<60>>. Создайте step block со значением 5 и выведите count.

Запишите std::chrono::duration<int, std::ratio<3600>> slot равным 2. Приведите к std::chrono::seconds и выведите счетчик секунд.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить