【发布时间】:2016-06-20 08:49:16
【问题描述】:
所以过去我通过引用 const 传递 std::chrono::duration 值,但现在我认为它们只不过是包装在一个类中的单个算术类型,因此按值传递它是有意义的。
有人介绍过吗?
【问题讨论】:
标签: c++ performance c++11 chrono
所以过去我通过引用 const 传递 std::chrono::duration 值,但现在我认为它们只不过是包装在一个类中的单个算术类型,因此按值传递它是有意义的。
有人介绍过吗?
【问题讨论】:
标签: c++ performance c++11 chrono
根据规范,duration 包装了
中指定的 Rep 类型的单个变量(滴答数)template<
class Rep,
class Period = std::ratio<1>
> class duration;
所以基本上你可以选择处理复制/传递 const ref,就像你为那个 Rep 类型做的那样。 当我以前使用 chromo::duration 时,我选择它为 long,在这种情况下,我看不到通过 const 引用传递的理由,(尤其是在我的架构中,long 和地址都是 8 个字节时)
【讨论】:
我认为它们只不过是一种封装的算术类型
持续时间中存储的唯一数据是 Rep 类型的滴答计数。如果 Rep 是浮点数,则持续时间可以表示滴答的分数。 Period 包含在持续时间类型中,仅在不同持续时间之间转换时使用。
和:
tick 周期是编译时有理常数
你猜对了
【讨论】: