我正在学习< 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系统和整个科学的基本时间单位.
即便是美国人也会使用秒针,而不是微缩夜.
即便是美国人也会使用秒针,而不是微缩夜.
why this basic time span isn’t another template parameter for duration class
它是,因为您可以提供比率的typedef,有些包含在标准中.
#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);