我应该使用高分辨率时间类型作为参数来避免duration_casts吗?

问题描述 投票:0回答:1

[我读到如果您的程序使用的最高分辨率类型是milliseconds,并且此类型将覆盖您的值所处的整个范围,则应尽量坚持使用该类型,以避免到处都有duration_casts。取而代之的是,如果需要的只是seconds的精度,则函数内部只有一个。

但是,对于返回类型

函数,相反地,您将返回可能的最低分辨率,以使duration_casts的数量尽可能少(以及此处甚至是最佳性能,因为在这种情况下您仍然会进行转换)。] >

[遗憾的是,我没有找到一个全面(或实际上,以任何方式)涵盖此问题的资源。这是应该使用的方式std::chrono(假设一个人并不渴望性能的最后可能)吗?

我了解到,如果您的程序使用的最高分辨率类型是毫秒,并且该类型将覆盖您的值所在的整个范围,则应主要使用它,以避免出现...

c++ type-conversion implicit-conversion chrono
1个回答
0
投票

我认为,除了[[是

,您不想用duration_cast乱扔您的代码之外,对此策略没有很多人可以说。仅将duration_cast保留给您要截断精度的那些转换。在那种情况下,请注意duration_cast会截断为零。 C ++ 17引入了其他3种截断策略:
© www.soinside.com 2019 - 2024. All rights reserved.