Namespaces
Variants

std::chrono::time_point<Clock,Duration>:: min

From cppreference.net
static constexpr time_point min ( ) ;
(C++20 前)
static constexpr time_point min ( ) noexcept ;
(C++20 起)

返回具有最小可能时长的 time_point ,即 time_point ( 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() << " 微秒绘制帧 ";
        animate_frame_at_time_offset(game_time.count());
    }
}

可能的输出:

在        0 微秒绘制帧 *
在  134.499 微秒绘制帧 *****
在  274.337 微秒绘制帧 *****
在  416.571 微秒绘制帧 *******
在  561.124 微秒绘制帧 **