![](/img/trans.png)
[英]time differences with std::chrono::system_clock / std::chrono::high_resolution_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_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::steady_clock
std::chrono::system_clock
或std::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.