我怎么知道我的 `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
或 system_clock
或其他的别名?
许多网站和书籍都提供了使用 system_clock
的示例,这些示例可能会由于同步而返回,以衡量功能花费的时间。
我认为这不是衡量时间的好主意。
相反,我认为我们应该使用 std::chrono::steady_clock
.
有时使用std::chrono::high_resolution_clock
。
根据 URL https://en.cppreference.com/w/cpp/chrono/high_resolution_clock ,它说 "It may be an alias of std::chrono::system_clock
or std::chrono::steady_clock
, or a third, independent 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'
;
}
如何知道我的 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 ,它说 "It may be an alias of std::chrono::system_clock
or std::chrono::steady_clock
, or a third, independent 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'
;
}