std :: chrono :: ปีการจัดเก็บอย่างน้อย 17 บิตจริงหรือ
จากcppreference std::chrono::years (since C++20) duration</*signed integer type of at least 17 bits*/, std::ratio<31556952>> ใช้libc++ดูเหมือนว่าการจัดเก็บการขีดเส้นใต้std::chrono::yearsมีที่shortซึ่งมีการลงนาม16 บิต 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) …