llvm-project/libcxx/docs/Status/Cxx20Issues.csv
Mark de Wever f78f93bc9f [libc++][chrono] Adds tzdb_list implementation.
This is the first step to implement time zone support in libc++. This
adds the complete tzdb_list class and a minimal tzdb class. The tzdb
class only contains the version, which is used by reload_tzdb.

Next to these classes it contains documentation and build system support
needed for time zone support. The code depends on the IANA Time Zone
Database, which should be available on the platform used or provided by
the libc++ vendors.

The code is labeled as experimental since there will be ABI breaks
during development; the tzdb class needs to have the standard headers.

Implements parts of:
- P0355 Extending <chrono> to Calendars and Time Zones

Addresses:
- LWG3319 Properly reference specification of IANA time zone database

Reviewed By: #libc, ldionne

Differential Revision: https://reviews.llvm.org/D154282
2023-09-06 20:48:07 +02:00

39 KiB

1Issue #Issue NameMeetingStatusFirst released versionLabels
2
3
4
5
6
7`3173 <https://wg21.link/LWG3173>`__Enable CTAD for ``ref-view``\ Kona|Complete|15.0|ranges|
8`3179 <https://wg21.link/LWG3179>`__``subrange``\ should always model ``Range``\ Kona|Nothing To Do||ranges|
9`3180 <https://wg21.link/LWG3180>`__Inconsistently named return type for ``ranges::minmax_element``\ Kona|Complete|15.0|ranges|
10
11`3169 <https://wg21.link/LWG3169>`__``ranges``\ permutation generators discard useful informationCologne|Complete|15.0|ranges|
12`3183 <https://wg21.link/LWG3183>`__Normative permission to specialize Ranges variable templatesCologne|Nothing To Do||ranges|
13`3186 <https://wg21.link/LWG3186>`__``ranges``\ removal, partition, and ``partial_sort_copy``\ algorithms discard useful informationCologne|Complete|15.0|ranges|
14`3191 <https://wg21.link/LWG3191>`__``std::ranges::shuffle``\ synopsis does not match algorithm definitionCologne|Complete|15.0|ranges|
15
16`3225 <https://wg21.link/LWG3225>`__``zoned_time``\ converting constructor shall not be ``noexcept``\ Belfast|chrono|
17`3218 <https://wg21.link/LWG3218>`__Modifier for ``%d``\ parse flag does not match POSIX and ``format``\ specificationBelfast|chrono| |format|
18`3224 <https://wg21.link/LWG3224>`__``zoned_time``\ constructor from ``TimeZonePtr``\ does not specify initialization of ``tp_``\ Belfast|chrono|
19`3230 <https://wg21.link/LWG3230>`__Format specifier ``%y/%Y``\ is missing locale alternative versionsBelfast|Complete|16.0|chrono| |format|
20`3232 <https://wg21.link/LWG3232>`__Inconsistency in ``zoned_time``\ deduction guidesBelfast|chrono|
21`3246 <https://wg21.link/LWG3246>`__What are the constraints on the template parameter of ``basic_format_arg``\ ?Belfast|format|
22`3245 <https://wg21.link/LWG3245>`__Unnecessary restriction on ``'%p'``\ parse specifierBelfast|chrono|
23`3241 <https://wg21.link/LWG3241>`__``chrono-spec``\ grammar ambiguity in |sect|\ [time.format]Belfast|Complete|16.0|chrono| |format|
24`3273 <https://wg21.link/LWG3273>`__Specify ``weekday_indexed``\ to range of ``[0, 7]``\ Belfast|Complete|16.0|chrono|
25`3272 <https://wg21.link/LWG3272>`__``%I%p``\ should parse/format ``duration``\ since midnightBelfast|chrono| |format|
26`3276 <https://wg21.link/LWG3276>`__Class ``split_view::outer_iterator::value_type``\ should inherit from ``view_interface``\ Belfast|Complete|15.0|ranges|
27`3277 <https://wg21.link/LWG3277>`__Pre-increment on prvalues is not a requirement of ``weakly_incrementable``\ Belfast|Nothing To Do||ranges|
28
29`3050 <https://wg21.link/LWG3050>`__Conversion specification problem in ``chrono::duration``\ constructorPrague|chrono|
30`3150 <https://wg21.link/LWG3150>`__``UniformRandomBitGenerator``\ should validate ``min``\ and ``max``\ Prague|Complete|13.0|ranges|
31`3226 <https://wg21.link/LWG3226>`__``zoned_time``\ constructor from ``string_view``\ should accept ``zoned_time<Duration2, TimeZonePtr2>``\ Prague|chrono|
32`3242 <https://wg21.link/LWG3242>`__``std::format``\ : missing rules for ``arg-id``\ in ``width``\ and ``precision``\ Prague|Complete|14.0|format|
33`3243 <https://wg21.link/LWG3243>`__``std::format``\ and negative zeroesPrague|Complete|14.0|format|
34`3247 <https://wg21.link/LWG3247>`__``ranges::iter_move``\ should perform ADL-only lookup of ``iter_move``\ Prague|Complete|15.0|ranges|
35`3248 <https://wg21.link/LWG3248>`__``std::format``\ ``#b``\ , ``#B``\ , ``#o``\ , ``#x``\ , and ``#X``\ presentation types misformat negative numbersPrague|Complete|14.0|format|
36`3250 <https://wg21.link/LWG3250>`__``std::format``\ : ``#``\ (alternate form) for NaN and infPrague|Complete|14.0|format|
37`3251 <https://wg21.link/LWG3251>`__Are ``std::format``\ alignment specifiers applied to string arguments?Prague|Complete|14.0|format|
38`3252 <https://wg21.link/LWG3252>`__Parse locale's aware modifiers for commands are not consistent with POSIX specPrague|chrono|
39`3260 <https://wg21.link/LWG3260>`__``year_month*``\ arithmetic rejects durations convertible to yearsPrague|chrono|
40`3262 <https://wg21.link/LWG3262>`__Formatting of negative durations is not specifiedPrague|Complete|16.0|chrono| |format|
41`3264 <https://wg21.link/LWG3264>`__``sized_range``\ and ``ranges::size``\ redundantly use ``disable_sized_range``\ Prague|Complete|15.0|ranges|
42`3269 <https://wg21.link/LWG3269>`__Parse manipulators do not specify the result of the extraction from streamPrague|chrono|
43`3270 <https://wg21.link/LWG3270>`__Parsing and formatting ``%j``\ with ``duration``\ sPrague|Partial||chrono| |format|
44`3280 <https://wg21.link/LWG3280>`__View converting constructors can cause constraint recursion and are unneededPrague|Complete|15.0|ranges|
45`3281 <https://wg21.link/LWG3281>`__Conversion from ``*pair-like*``\ types to ``subrange``\ is a silent semantic promotionPrague|Complete|15.0|ranges|
46`3282 <https://wg21.link/LWG3282>`__``subrange``\ converting constructor should disallow derived to base conversionsPrague|Complete|15.0|ranges|
47`3284 <https://wg21.link/LWG3284>`__``random_access_iterator``\ semantic constraints accidentally promote difference type using unary negatePrague|Nothing To Do||ranges|
48`3285 <https://wg21.link/LWG3285>`__The type of a customization point object shall satisfy ``semiregular``\ Prague|Nothing To Do||ranges|
49`3286 <https://wg21.link/LWG3286>`__``ranges::size``\ is not required to be valid after a call to ``ranges::begin``\ on an input rangePrague|Complete|15.0|ranges|
50`3291 <https://wg21.link/LWG3291>`__``iota_view::iterator``\ has the wrong ``iterator_category``\ Prague|Complete|15.0|ranges|
51`3292 <https://wg21.link/LWG3292>`__``iota_view``\ is under-constrainedPrague|Complete|15.0|ranges|
52`3294 <https://wg21.link/LWG3294>`__``zoned_time``\ deduction guides misinterprets ``string``\ /``char*``\ Prague|chrono|
53`3299 <https://wg21.link/LWG3299>`__Pointers don't need customized iterator behaviorPrague|Complete|15.0|ranges|
54`3301 <https://wg21.link/LWG3301>`__``transform_view::iterator``\ has incorrect ``iterator_category``\ Prague|Complete|15.0|ranges|
55`3302 <https://wg21.link/LWG3302>`__Range adaptor objects ``keys``\ and ``values``\ are unspecifiedPrague|Complete|16.0|ranges|
56`3313 <https://wg21.link/LWG3313>`__``join_view::iterator::operator--``\ is incorrectly constrainedPrague|Complete|14.0|ranges|
57`3314 <https://wg21.link/LWG3314>`__Is stream insertion behavior locale dependent when ``Period::type``\ is ``micro``\ ?Prague|Complete|16.0|chrono|
58`3316 <https://wg21.link/LWG3316>`__Correctly define epoch for ``utc_clock``\ / ``utc_timepoint``\ Prague|chrono|
59`3317 <https://wg21.link/LWG3317>`__Incorrect ``operator<<``\ for floating-point durationsPrague|chrono|
60`3318 <https://wg21.link/LWG3318>`__Clarify whether clocks can represent time before their epochPrague|chrono|
61`3319 <https://wg21.link/LWG3319>`__Properly reference specification of IANA time zone databasePrague|Nothing To Do||chrono|
62`3323 <https://wg21.link/LWG3323>`__``*has-tuple-element*``\ helper concept needs ``convertible_to``\ Prague|Complete|16.0|ranges|
63`3324 <https://wg21.link/LWG3324>`__Special-case ``std::strong/weak/partial_order``\ for pointersPrague|Complete|14.0|spaceship|
64`3325 <https://wg21.link/LWG3325>`__Constrain return type of transformation function for ``transform_view``\ Prague|Complete|15.0|ranges|
65`3326 <https://wg21.link/LWG3326>`__``enable_view``\ has false positivesPrague|Complete|15.0|ranges|
66`3327 <https://wg21.link/LWG3327>`__Format alignment specifiers vs. text directionPrague|Nothing To Do||format|
67`3330 <https://wg21.link/LWG3330>`__Include ``<compare>``\ from most library headersPrague|Complete|13.0|spaceship|
68`3332 <https://wg21.link/LWG3332>`__Issue in |sect|\ [time.format]Prague|Complete|16.0|chrono| |format|
69`3335 <https://wg21.link/LWG3335>`__Resolve C++20 NB comments US 273 and GB 274Prague|Complete|15.0|ranges|
70`3340 <https://wg21.link/LWG3340>`__Formatting functions should throw on argument/format string mismatch in |sect|\ [format.functions]Prague|Complete|14.0|format|
71`3350 <https://wg21.link/LWG3350>`__Simplify return type of ``lexicographical_compare_three_way``\ Prague|Complete|17.0|spaceship|
72`3351 <https://wg21.link/LWG3351>`__``ranges::enable_safe_range``\ should not be constrainedPrague|Complete|15.0|ranges|
73`3352 <https://wg21.link/LWG3352>`__``strong_equality``\ isn't a thingPrague|Nothing To Do||spaceship|
74`3354 <https://wg21.link/LWG3354>`__``has_strong_structural_equality``\ has a meaningless definitionPrague|Nothing To Do||spaceship|
75`3355 <https://wg21.link/LWG3355>`__The memory algorithms should support move-only input iterators introduced by P1207Prague|Complete|15.0|ranges|
76`3359 <https://wg21.link/LWG3359>`__``<chrono>``\ leap second support should allow for negative leap secondsPrague|chrono|
77`3360 <https://wg21.link/LWG3360>`__``three_way_comparable_with``\ is inconsistent with similar conceptsPrague|Nothing To Do||spaceship|
78`3363 <https://wg21.link/LWG3363>`__``drop_while_view``\ should opt-out of ``sized_range``\ Prague|Nothing To Do||ranges|
79`3364 <https://wg21.link/LWG3364>`__Initialize data members of ranges and their iteratorsPrague|Complete|16.0|ranges|
80`3371 <https://wg21.link/LWG3371>`__``visit_format_arg``\ and ``make_format_args``\ are not hidden friendsPrague|Complete|14.0|format|
81`3372 <https://wg21.link/LWG3372>`__``vformat_to``\ should not try to deduce ``Out``\ twicePrague|Complete|14.0|format|
82`3373 <https://wg21.link/LWG3373>`__``{to,from}_chars_result``\ and ``format_to_n_result``\ need the "we really mean what we say" wordingPrague|Complete|14.0|format|
83`3375 <https://wg21.link/LWG3375>`__``decay``\ in ``viewable_range``\ should be ``remove_cvref``\ Prague|Complete|15.0|ranges|
84`3377 <https://wg21.link/LWG3377>`__``elements_view::iterator``\ befriends a specialization of itselfPrague|Nothing To Do||ranges|
85`3379 <https://wg21.link/LWG3379>`__"``safe``\ " in several library names is misleadingPrague|Complete|15.0|ranges|
86`3380 <https://wg21.link/LWG3380>`__``common_type``\ and comparison categoriesPrague|Complete|15.0|spaceship|
87`3381 <https://wg21.link/LWG3381>`__``begin``\ and ``data``\ must agree for ``contiguous_range``\ Prague|Nothing To Do||ranges|
88`3383 <https://wg21.link/LWG3383>`__|sect|\ [time.zone.leap.nonmembers] ``sys_seconds``\ should be replaced with ``seconds``\ Prague|chrono|
89`3384 <https://wg21.link/LWG3384>`__``transform_view::*sentinel*``\ has an incorrect ``operator-``\ Prague|Complete|15.0|ranges|
90`3385 <https://wg21.link/LWG3385>`__``common_iterator``\ is not sufficiently constrained for non-copyable iteratorsPrague|Complete|15.0|ranges|
91`3387 <https://wg21.link/LWG3387>`__|sect|\ [range.reverse.view] ``reverse_view<V>``\ unintentionally requires ``range<const V>``\ Prague|Complete|15.0|ranges|
92`3388 <https://wg21.link/LWG3388>`__``view``\ iterator types have ill-formed ``<=>``\ operatorsPrague|Complete|16.0|ranges|
93`3389 <https://wg21.link/LWG3389>`__A move-only iterator still does not have a ``counted_iterator``\ Prague|Complete|15.0|ranges|
94`3390 <https://wg21.link/LWG3390>`__``make_move_iterator()``\ cannot be used to construct a ``move_iterator``\ for a move-only iteratorPrague|Complete|14.0|ranges|
95`3395 <https://wg21.link/LWG3395>`__Definition for three-way comparison needs to be updated (US 152)Prague|spaceship|
96`3397 <https://wg21.link/LWG3397>`__``ranges::basic_istream_view::iterator``\ should not provide ``iterator_category``\ Prague|Complete|16.0|ranges|
97`3398 <https://wg21.link/LWG3398>`__``tuple_element_t``\ is also wrong for ``const subrange``\ Prague|Complete|14.0|ranges|
98`3446 <https://wg21.link/LWG3446>`__``indirectly_readable_traits``\ ambiguity for types with both ``value_type``\ and ``element_type``\ November virtual meeting|Complete|13.0|ranges|