std::chrono::time_point<Clock,Duration>::min
Материал из cppreference.com
<tbody>
</tbody>
<tbody class="t-dcl-rev ">
</tbody><tbody>
</tbody>
static constexpr time_point min(); |
(до C++20) | |
static constexpr time_point min() noexcept; |
(начиная с C++20) | |
Возвращает time_point с наименьшей возможной длительностью, т.е. time_point(std::chrono::duration::min()).
Параметры
(нет)
Возвращаемое значение
Наименьшее возможное time_point
Пример
Запустить этот код
#include <chrono>
#include <iomanip>
#include <iostream>
#include <ratio>
#include <string>
constexpr auto steady_min = std::chrono::steady_clock::time_point::min();
void animate_frame_at_time_offset(double game_time) {
std::cout << std::string(static_cast<int>(game_time) % 10 + 1, '*') << '\n';
}
int main()
{
auto last_frame = steady_min;
std::chrono::duration<double, std::micro> game_time {0.0};
for (int n = 0; n < 5; ++n) {
const auto current_frame = std::chrono::steady_clock::now();
// инициализировать таймер, если первый кадр всегда:
if (last_frame == steady_min)
last_frame = current_frame;
game_time += current_frame - last_frame;
std::cout << "Рисует кадр за " << std::setprecision(10)
<< std::setw(8) << game_time.count() << " μs ";
animate_frame_at_time_offset(game_time.count());
}
}
Возможный вывод:
Рисует кадр за 0 μs *
Рисует кадр за 134.499 μs *****
Рисует кадр за 274.337 μs *****
Рисует кадр за 416.571 μs *******
Рисует кадр за 561.124 μs **