繁体   English   中英

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

[英]How can I know my `std::chrono::high_resolution_clock` correspond to the alias of `steady_clock` or `system_clock`, or other?

我怎么知道我的std::chrono::high_resolution_clock steady_clock 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::steady_clock std::chrono::system_clockstd::chrono::steady_clock ,或者第三个,独立时钟。”

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

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

这是检查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'
    ;
}

演示

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM