std::chrono::steady_clock::now() - lastTime
возвращает duration
, поэтому вам необходимо сравнить его с продолжительностью.Что это означает, зависит от того, что означает ваша сравнительная ценность.Лучший / правильный способ - преобразовать это в длительность.
То есть ваш CPUCycles * 500
возвращает длительность в наносекундах?(0.0000005 == 500e-9
) Затем скажите компилятору, что:
if ((std::chrono::steady_clock::now() - lastTime) >= CPUCycles * std::chrono::nanoseconds(500))
Видите, как чисто это передает смысл?На 500 нс приходится 1 цикл -> Таким образом, ваше время прошло CPUCycles, умноженное на это.
В качестве альтернативы можно получить счет длительности с помощью функции-члена count()
, но вы в основном захотите сначала разыграть ее.:
auto diff = std::chrono::steady_clock::now() - lastTime;
if(std::chrono::duration_cast<std::chrono::nanoseconds>(diff).count() >= CPUCycles * 500) ...
Но это теряет всю ясность, которую chrono
дает вам.