Своя единица длительности в 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 и выведите
счетчик секунд.