User:T. Canens/date issues


 * operator<<(duration):
 * Wording is unclear that we may need to copy the result of to_w?string if there's a traits mismatch


 * to_stream(duration):
 * Unclear how exactly formatting is to be done for a pure duration - e.g. "12-hour"/"24-hour"?


 * file_clock's to/from functions are specified with vigorous handwaving
 * clock_time_conversion
 * We should say that user specializations need to be DefaultConstructible; otherwise clock_cast can't use them.
 * Can specializations be an empty class as well?
 * "takes a parameter of type time_point" - mean "argument"


 * Calendar classes
 * operator<< specification is all kinds of unclear in terms of interaction with stream formatting flags.
 * e.g., operator<<(day): if inserting format(...) as specified, would apply padding etc. But reference impl does nothing of that sort and writes into the stream directly.
 * These need to be respecified to avoid depending on format per the new direction that to_stream set failbit if !ok
 * Also the specification does not handle traits correctly - attempts to insert a string with mismatched traits if not the default.
 * literal interaction with overflow is interesting - e.g., "4294967297d" on a typical implementation is defined to be 1d because overflow is checked post-static_cast.
 * Howard: this is meant to be unspecified
 * year::ok has quasi-editorial bug comparing y_ with min/max which are years
 * year_month + months is insufficiently specified (need z.ok) and needs wording to avoid UB by omission
 * year_month_day_last::day's handling of !ok case is unclear (and UB in the reference impl) - this has implications on a bunch of noexcepts if we keep it UB
 * weekday_indexed allows [1,5] as index range, but year_month_weekday took special care to handle 0. Suggested allowing [0, 7].


 * [time.format]
 * What happens if an invalid specifier is encountered?
 * Howard: They are treated as ordinary characters.
 * "ordinary multibyte characters" wchar_t?
 * Definition of "information the conversion specifier refers to" is unclear with the ISO week-based year thingys
 * Howard: this is meant to be based on the general case, i.e., %G requires day-precision.
 * Handling of stream flags unclear
 * "unspecified value" or failbit not pinned down
 * Howard: These should all set failbit, never unspecified value.
 * format throws an exception in that case. Need to revisit << that are specified with format


 * [time.parse]
 * Same problem with ISO week-based year.
 * duplicated flags?
 * Check %g's interpretation if no century info?
 * parse needs to use addressof for abbrev - let's check the entire subclause
 * No overload taking const charT*?!
 * Result/type of extraction not specified.


 * time_of_day
 * "Each specialization of time_­of_­day is a trivially copyable and standard-layout class type." Not possible for arbitrary Rep unless you ban it
 * What exactly happens if constructed with a duration > 24h?


 * tzdb_list
 * I don't think "thread-safe" is a defined term. Double check and replace with the usual formulation
 * Yep, use "does not introduce a data race".


 * tzdb
 * Can default construct? Is aggregate?
 * Public exposition-only member that's not used anywhere