[我读到如果您的程序使用的最高分辨率类型是milliseconds
,并且此类型将覆盖您的值所处的整个范围,则应尽量坚持使用该类型,以避免到处都有duration_casts
。取而代之的是,如果需要的只是seconds
的精度,则函数内部只有一个。
但是,对于返回类型
函数,相反地,您将返回可能的最低分辨率,以使duration_casts的数量尽可能少(以及此处甚至是最佳性能,因为在这种情况下您仍然会进行转换)。] >[遗憾的是,我没有找到一个全面(或实际上,以任何方式)涵盖此问题的资源。这是应该使用的方式std::chrono
(假设一个人并不渴望性能的最后可能)吗?
我了解到,如果您的程序使用的最高分辨率类型是毫秒,并且该类型将覆盖您的值所在的整个范围,则应主要使用它,以避免出现...
我认为,除了[[是
,您不想用duration_cast
乱扔您的代码之外,对此策略没有很多人可以说。仅将duration_cast
保留给您要截断精度的那些转换。在那种情况下,请注意duration_cast
会截断为零。 C ++ 17引入了其他3种截断策略: