我有
auto now = std::chrono::high_resolution_clock::now();
我想将它传递给使用通用类型的时间点的函数。我不想指定使用的时钟的分辨率或类型。
我试过使用
void my_function(std::chrono::time_point time_point);
但没有成功。因为显然 std::chrono::time_point 不是一种类型。
这std::chrono::time_point
是一个模板类,至少需要一个clock
模板参数。
要么明确设置时钟,比如
void my_function(std::chrono::time_point<std::chrono::high_resolution_clock> time_point);
或者你可以让你的函数本身成为一个模板:
template<typename Clock>
void my_function(std::chrono::time_point<Clock> time_point);
在最后一种情况下,您实际上不必在调用函数时指定模板参数,编译器会为您计算出来:
my_function(now);