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

前端之家收集整理的这篇文章主要介绍了c – 为什么std :: chrono :: duration基于秒前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在学习< chrono>库,并考虑到std :: chrono :: duration类,是否有任何特定的理由以秒为基础?例如,存储秒数的变量将是
  1. chrono::duration<int> two_seconds(2);

而所有其他时间跨度都需要将它们与秒相关联,例如

  1. chrono::duration<int,ratio<60>> two_minutes(2);
  2. chrono::duration<int,ratio<1,1000>> two_milliseconds(2);
  3. 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,有些包含在标准中.

  1. #include <chrono>
  2.  
  3. std::chrono::duration<int,minutes> two_minutes(2); // Standard
  4. std::chrono::duration<int,milliseconds> two_milliseconds(2); // Standard

如果你需要更多,他们很容易添加

  1. typedef std::ratio<60 * 60 * 24> days;
  2. typedef std::ratio<756,625> microfortnights;
  3.  
  4. std::chrono::duration<int,days> two_days(2);
  5. std::chrono::duration<int,microfortnights> two_weeks(1000000);

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