0
我试图编写一个函数,允许用户指定chrono::duration
,如chrono::seconds
并返回chrono::duration::count
的结果。带chrono :: duration参数并返回chrono :: duration :: count的函数的模板函数
我能够做到这一点使用下面的模板函数:
template<typename D, typename Rep>
Rep getTimeSinceStart(){
return chrono::duration_cast<D>(chrono::steady_clock::now() - start).count();
};
调用这个函数,我必须为Rep
指定类型。例如,假设我有一个名为timer
一个对象,如果Rep
是long long
:
long long sinceStart = timer.getTimeSinceStart<chrono::seconds, long long>();
但是,有没有办法只有指定chrono::duration
?
我的想法是这样的:
template<typename D>
D.rep getTimeSinceStart(){
return chrono::duration_cast<D>(chrono::steady_clock::now() - start).count();
};
这样我可以只叫:
long long sinceStart = timer.getTimeSinceStart<chrono::seconds>();
太棒了!你可能可以告诉我相对比较新的模板。我不知道我需要在返回值的'D :: rep'之前指定'typename'。如果你有一个参考,我可以阅读更多关于这一点,我会欣赏方向。 – user3731622
深呼吸:http://en.cppreference.com/w/cpp/language/dependent_name –