我怎么知道我的std::chrono::high_resolution_clock
对应于steady_clock
或system_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_clock
或std::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/