通过STD :: Chrono ::按价值或参考const的持续时间

Pass std::chrono::duration by value or by reference to const?

本文关键字:参考 const 持续时间 STD Chrono 通过      更新时间:2023-10-16

因此,在过去,我通过参考const传递了 std::chrono::duration值,但是现在我认为它们不过是包裹在类中的单个算术类型,因此按值传递它是有意义的。

有人介绍了吗?

根据规范,持续时间包含

中指定的类型ret的单个变量(tick数)
template<
    class Rep, 
    class Period = std::ratio<1> 
> class duration;

基本上,您可以选择像该代表类型一样处理复制/通过const ref。当我以前使用chromo ::持续时间时,我选择了它是一个长的时间,在这种情况下,我没有看到通过const参考的理由(尤其是在我的架构中,一个长度和地址都是8个字节)

我认为它们不过是包装的单一算术类型

查看cppreference.com:

持续时间内存储的唯一数据是type Rep的tick计数。如果代表是浮点,则持续时间可以表示tick的分数。周期作为持续时间类型的一部分,仅在不同持续时间之间转换时才使用。

和:

滴答周期是一个编译时间有理常数

您的猜测是正确的