如果 d > 255,为什么未指定 std::chrono::day 存储值

Why std::chrono::day stored value is unspecified if d > 255

引自std::literals::chrono_literals::operator""d

A std::chrono::day storing d. If d > 255, the stored value is unspecified.

此限制背后的基本原理是什么?

文字不能存储超过 std::chrono::day 本身可以存储的内容,即 0-255。这允许它实现为 1 字节数据类型,因为它通常只存储 1 到 31 之间的值就足够了。

如果您正在寻找一种数据类型来存储任意天数的持续时间,请改用 std::chrono::days