为什么 std::chrono::duration 以秒为单位
why is std::chrono::duration based on seconds
我正在学习 <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);
是否有任何理由将持续时间基于秒而不是分钟、小时等?
选择秒是因为它是国际单位制和整个科学的基本时间单位。
甚至美国人也使用秒而不是像微两周这样的东西。
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);
我正在学习 <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);
是否有任何理由将持续时间基于秒而不是分钟、小时等?
选择秒是因为它是国际单位制和整个科学的基本时间单位。
甚至美国人也使用秒而不是像微两周这样的东西。
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);