gpt4 book ai didi

c++ - 使用时间单位模板返回 chrono::duration 的函数

转载 作者:行者123 更新时间:2023-11-28 00:36:17 25 4
gpt4 key购买 nike

我是 C++ 模板的新手,我正在尝试编写一个返回具有指定时间单位和类型的 chrono::duration 的函数。例如,这一行以秒为单位给出了双倍的时差:

std::chrono::duration<double> secd =
std::chrono::duration_cast<std::chrono::duration<double,std::ratio<1>>>(end - start);

我有一个类函数,它给我一个持续时间,我想使用模板来指示返回值的类型和单位(在前面的示例中,这将是 double 和比率<1>)。我想要的是类似于此伪代码的内容:

template typename<class T, class R> std::chrono::duration<T, R> getStepTime() {
return std::chrono::duration_cast<std::chrono::duration<T, R>>(_time);
}

其中 _time 是具有持续时间的类成员。到目前为止,我所有的尝试甚至都没有编译成功。

如果有更好的方法在不使用模板的情况下实现这一点,我会洗耳恭听。

最佳答案

typename 的错误使用,并且您的模板中缺少结束 >。这是一个测试编译的调整示例:

template <typename T, typename R> 
std::chrono::duration<T, R> getStepTime()
{
std::chrono::duration<T, R> duration;
return std::chrono::duration_cast<std::chrono::duration<T, R>>(duration);
}

http://ideone.com/QGYm8u

关于c++ - 使用时间单位模板返回 chrono::duration 的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20813366/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com