https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61166
--- Comment #12 from Kan Liu <kan.liu.229 at gmail dot com> --- (In reply to Jonathan Wakely from comment #11) > (In reply to Kan Liu from comment #10) > > _Select_type already does the overflow check, so *template implemented > > operators* is still redundant I think. > > You can't use _Select_type on a literal operator that is not a template. > > > Since the standard units (std::hours, > > milliseconds ...) requires the duration::rep to be *int64_t*, > > No it doesn't, only chrono::nanoseconds is required to have a 64-bit > representation. chrono::hours and chrono::minutes are allowed to have fewer > than 32 bits ("at least 23 bits" and "at least 29 bits" respectively). > > > there's no > > need to do too much check. > > Not all values of uint64_t fit in int64_t Wow... I see