std :: chrono :: yearsストレージは本当に少なくとも17ビットですか?
cppreferenceから std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> を使用libc++すると、16ビットに署名されているstd::chrono::yearsis の下線付きストレージが表示さshortれます。 std::chrono::years( 30797 ) // yields 32767/01/01 std::chrono::years( 30797 ) + 365d // yields -32768/01/01 apparently UB cppreferenceまたは何か他のタイプミスはありますか? 例: #include <fmt/format.h> #include <chrono> template <> struct fmt::formatter<std::chrono::year_month_day> { char presentation = 'F'; constexpr auto parse(format_parse_context& ctx) …