c – 为什么std :: chrono :: duration基于秒

前端之家收集整理的这篇文章主要介绍了c – 为什么std :: chrono :: duration基于秒前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习< 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);

猜你在找的C&C++相关文章