2

我知道我可以将boost::gregorian::date_duration时间间隔用于天数和boost::posix_time::time_duration时间间隔,但是是否有一种简单的数据类型可以用于从秒到数天的时间间隔?

的限制(最长持续时间)是boost::posix_time::time_duration多少?

4

2 回答 2

1

“POSIX 时间”通常表示“自 1970 年 1 月 1 日以来的秒数”,如果您使用 32 位值,这在大约 2037 年之前都很好,如果您使用 64 位,则更长。因此,如果不查看 Boost 的确切规格,我不会太担心boost::posix_time::time_duration.

于 2013-04-09T19:30:15.073 回答
1

文档中

默认情况下,posix_time 系统在内部使用 64 位整数和 32 位整数来提供纳秒级分辨率——每个时间值 96 位。作为替代方案,可以使用单个 64 位整数来提供微秒级分辨率。对于许多不需要纳秒分辨率的应用程序,这种替代实现可以提供更好的性能和更紧凑的内存使用。

build/Jamfile 中定义的变量 BOOST_DATE_TIME_POSIX_TIME_STD_CONFIG 在这些选项之间进行选择。要选择 64 位整数实现,只需从 Jamfile 中删除此定义。

因此,就您而言,DevSolar 的回答最后很好地总结了它。

于 2013-04-09T19:32:17.497 回答