c++ - 我怎么知道我的 `std::chrono::high_resolution_clock`对应于 `steady_clock`或 `system_clock`或其他别名?

标签 c++ chrono

我怎么知道我的std::chrono::high_resolution_clock对应于steady_clocksystem_clock或其他别名?

许多网站和书籍都提供了使用system_clock的示例,该示例可能由于同步而返回,以测量功能花费的时间。
我认为这不是衡量时间的好主意。
相反,我认为我们应该使用std::chrono::steady_clock

有时使用std::chrono::high_resolution_clock
根据URL https://en.cppreference.com/w/cpp/chrono/high_resolution_clock,它说:“它可能是std::chrono::system_clockstd::chrono::steady_clock的别名,或者是第三个独立的时钟。”

因此,我想知道如何检查std::chrono::high_resolution_clock对应的别名。
有任何想法吗?

最佳答案

直接来自Sam Varshavchik的评论。您可以使用std::is_same中的<type_traits>来检查两种类型是否相同。

这是检查chrono中的三个标准时钟的示例:

#include <chrono>
#include <iostream>
#include <type_traits>

int main() {
    using namespace std::chrono;

    std::cout << std::boolalpha
        << std::is_same_v<system_clock, high_resolution_clock> << '\n'
        << std::is_same_v<system_clock, steady_clock> << '\n'
        << std::is_same_v<high_resolution_clock, steady_clock> << '\n'
    ;
}

Demo

关于c++ - 我怎么知道我的 `std::chrono::high_resolution_clock`对应于 `steady_clock`或 `system_clock`或其他别名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60580266/

相关文章:

c++ - C++ WDK STL 是否支持 wchar_t?我得到未解析的外部符号的 :(

c++ - 如何访问 QTextDocument 的 QUndoStack?

c++ - 检查 std::chrono 持续时间小于 0 的惯用方法

c++ - constexpr 函数中的复合赋值 : gcc vs. clang

c++ - 如何使对话框标题居中?

c++ - 使用删除时出现调试断言失败_BLOCK_TYPE_IS_VALID 错误

c++ - 如果 d > 255,为什么未指定 std::chrono::day 存储值

c++ - 如何在不使用 time_t 的情况下将 std::chrono::time_point 转换为 std::tm?

c++ - 持久化 std::chrono time_point 实例

Android NDK chrono epoch 不正确(std::chrono::high_resolution_clock)