【发布时间】:2013-12-28 10:15:30
【问题描述】:
我是 C++ 模板的新手,我正在尝试编写一个函数,该函数返回具有指定时间单位和类型的 chrono::duration。例如,这条线给了我以秒为单位的双倍时间差:
std::chrono::duration<double> secd =
std::chrono::duration_cast<std::chrono::duration<double,std::ratio<1>>>(end - start);
我有一个类函数,它给我一个持续时间,我想使用模板来指示返回值的类型和单位(在前面的例子中,这将是 double 和比率)。我想要的是类似于这个伪代码的东西:
template typename<class T, class R> std::chrono::duration<T, R> getStepTime() {
return std::chrono::duration_cast<std::chrono::duration<T, R>>(_time);
}
其中_time 是具有持续时间的类成员。到目前为止,我所有的尝试都没有编译成功。
如果有更好的方法可以在不使用模板的情况下实现这一点,我会全力以赴。
【问题讨论】:
-
如果你想要返回类型的通用性,你需要模板!