gpt4 book ai didi

c++ - 为什么 C++20 中的 time_of_day 和 hh_mm_ss 是两种不同的类型?

转载 作者:行者123 更新时间:2023-12-03 15:53:32 28 4
gpt4 key购买 nike

C++20 标准定义了两种存储白天时间的类型:chrono::hh_mm_sschrono::time_of_day .
两者似乎都存储自午夜以来的持续时间,但由于 DST 效应,调用者应该只使用小时、分钟、秒和亚秒元素。
www.cppreference.com对两种类型给出完全相同的描述:

The class template ... splits a std::chrono::duration representingtime since midnight into a "broken down" time such ashours:minutes:seconds, with the precision of the split determined bythe Duration template parameter. ... It is primarily a formattingtool.


唯一的区别似乎是 chrono::time_of_day提到 12 小时/24 小时格式和 chrono::hh_mm_ss没有。
Howard Hinnant's GitHub library time_of_day定义如下:
template <class Duration>
using time_of_day = hh_mm_ss<Duration>;
那么为什么有两种不同的类型呢?

最佳答案

https://en.cppreference.com/w/很棒,但并不完美。好吧,也许是。你还能从哪里获得这种修复速度?! (请注意此答案下方的第二条评论)。 :-)
Howard Hinnant's GitHub library原来只有time_of_day .这是 C++20 提案的一部分。在标准化过程中,time_of_day更名为 hh_mm_ss ,并进行了一些 API 调整。
以下是提出这些更改的论文:http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2019/p1466r3.html
Howard Hinnant's GitHub library “实现”了此更改,但留下了 time_of_day键入别名只是为了与该库的现有用户向后兼容。
总之,没有chrono::time_of_day ,只有chrono::hh_mm_ss :http://eel.is/c++draft/time.hms

请注意下面来自 Nicol Bolas 的非常有用的评论。

关于c++ - 为什么 C++20 中的 time_of_day 和 hh_mm_ss 是两种不同的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67301619/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com