std::chrono 并且缺少(?)对负闰秒的支持

std::chrono and missing (?) support for negative leap seconds

C++20 为 std::chrono 添加了时区支持,其中包括 leap seconds。但是,似乎只支持闰秒插入,而不支持闰秒移除,即负闰秒。 (诚​​然,自 1972 年以来,只有正闰秒;但在过去几年中,漂移似乎已经逆转,未来几年似乎有可能出现负闰秒。)

从描述 std::chrono::leap_second class 的方式可以明显看出这一点 - 无法区分正闰秒和负闰秒。

知道为什么 std::chrono 不支持这种可能性吗?这是优化还是某种错误?还是已经支持了,我错过了什么?

注意:MSVC 实现似乎具有允许负闰秒的非标准功能。

[time.zone.leap.members]/2 实际上确实指定了负闰秒。

Returns: +1s to indicate a positive leap second or -1s to indicate a negative leap second. [Note 1: All leap seconds inserted up through 2019 were positive leap seconds. — end note]

当标准谈到插入闰秒时,闰秒可能是负数,这与删除是一样的。

注意:我不确定这是 C++23 的新内容还是 C++20 的新内容,我现在没有 C++20 草案的副本。