我有
auto now = std::chrono::high_resolution_clock::now();
我希望将它传递给使用通用类型的时间点的函数。我不想指定所用时钟的分辨率或类型。
我尝试过使用
void my_function(std::chrono::time_point time_point);
但没有成功。因为显然std :: chrono :: time_point不是一个类型。
答案 0 :(得分:4)
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);