std :: chrono超类型,函数参数传递

时间:2012-11-19 11:34:15

标签: c++ c++11 chrono

我有

auto now = std::chrono::high_resolution_clock::now();

我希望将它传递给使用通用类型的时间点的函数。我不想指定所用时钟的分辨率或类型。

我尝试过使用

void my_function(std::chrono::time_point time_point);

但没有成功。因为显然std :: chrono :: time_point不是一个类型。

1 个答案:

答案 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);