我正在学习<chrono>
图书馆,正在考虑std::chrono::duration
上课,是否有任何特定的理由以秒为基础?例如,存储秒的变量将是
chrono::duration<int> two_seconds(2);
而所有其他时间跨度都需要将它们与秒相关联,例如
chrono::duration<int, ratio<60>> two_minutes(2);
chrono::duration<int, ratio<1, 1000>> two_milliseconds(2);
chrono::duration<int, ratio<60 * 60 * 24>> two_days(2);
是否有任何理由将持续时间基于秒而不是分钟,小时等?
之所以选择秒,是因为它是SI系统和整个科学中的基本时间单位。
即使是美国人,也使用秒,而不是像microfortnights。
为什么这个基本时间跨度不是持续时间类的另一个模板参数
是的,因为您可以为typedef
s提供比率,其中一些包含在标准中。
#include <chrono>
std::chrono::duration<int, minutes> two_minutes(2); // Standard
std::chrono::duration<int, milliseconds> two_milliseconds(2); // Standard
如果您需要更多,可以轻松添加:
typedef std::ratio<60 * 60 * 24> days;
typedef std::ratio<756, 625> microfortnights;
std::chrono::duration<int, days> two_days(2);
std::chrono::duration<int, microfortnights> two_weeks(1000000);
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句