diff --git a/papers/n4859.md b/papers/n4859.md new file mode 100644 index 0000000000..b5f496c320 --- /dev/null +++ b/papers/n4859.md @@ -0,0 +1,1718 @@ +# N4859 Editors' Report -- Programming Languages -- C++ + +2020-03-31 +Richard Smith (editor) (Google Inc) +Thomas Köppe (co-editor) (Google DeepMind) +Jens Maurer (co-editor) +Dawn Perchik (co-editor) (Bright Side Computing, LLC) +`` + +## Acknowledgements + +Special thanks to +Marshall Clow +for providing LaTeX sources for the LWG "Mandating" papers. + +Special thanks to +Johel Ernesto Guerrero Peña +for reviewing the edits for many of the motions +and catching numerous issues, and to +Krystian Stasiowski +for providing many pull requests to improve +the consistency and precision of the standard wording. + +Thanks to all those who have [submitted editorial +issues](https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue) +and to those who have provided pull requests with fixes. + +## New papers + + * N4859 is this Editors' Report. + * [N4860](http://wg21.link/n4860) is the C++20 Draft International Standard. + * [N4861](http://wg21.link/n4861) is the current working draft for C++23. It replaces [N4849](http://wg21.link/n4849). + +The contents of N4860 and N4861 are identical +except for the cover sheet, page headers and footers, and +except that N4861 does not contain an index of +cross references from ISO C++ 2017. + +## Papers incorporated into working draft + +### Core working group polls + +CWG poll 1: [NB comment resolutions](http://wg21.link/p2103r0) for 7 NB comments applied: + + * NB US 028: Define grammar for *punctuator* **(DR)** + * NB US 033: Allow `import` inside *linkage-specification*s + * NB US 041: Enforce correspondence of containing objects for pointer values / aliasing **(DR)** + * NB CA 104: Clarify declaration matching and partial ordering requiring substitution into constraints + * NB CA 107: Parameter mapping for non-dependent entities + * NB US 115: Hidden non-template friends need a *requires-clause* + * NB US 117: Comparing types and *type-constraint*s + +CWG poll 2: [P1779R3 "ABI isolation for member functions"](http://wg21.link/p1779r3), resolving 1 NB comment: + + * NB US 090: Apply [P1779](http://wg21.link/p1779) after [P1815](http://wg21.link/p1815) + +CWG poll 3: [P1857R3 "Modules dependency discovery"](http://wg21.link/p1857r3), resolving 11 NB comments: **with changes; see below** + + * NB US 026: Make `module` also a directive + * NB US 121: Treat `module` declarations as preprocessing directives + * NB US 125: Repair *control-line* lexing of `import` + * NB GB 126: `import` as a preprocessing directive vs Modules Tooling TR + * NB US 127: Add more context for `import` preprocessing + * NB US 128: Clarify *control-line* pass-through for `import` + * NB US 136: Bad definition of *pp-global-module-fragment* + * NB US 137: Empty macros in `module` declarations + * NB US 138: `import` *control-line* vs *pp-balanced-token-sequence* + * NB US 139: Inconsistent restrictions on `module` keyword + * NB US 140: `module` from `#include` or macro expansion + +CWG poll 4: [P0593R6 "Implicit creation of objects for low-level object manipulation"](http://wg21.link/p0593r6), resolving 1 NB comment: **(DR)** + + * NB US 040: Adopt implicit object creation for C++20 + +CWG poll 5: [P1957R2 "Converting from `T*` to `bool` should be considered narrowing"](http://wg21.link/p1957r2), resolving 1 LWG issue and 1 NB comment: **(DR)** + + * [LWG 3228](http://wg21.link/lwg3228) Surprising `variant` construction + * NB US 212: Surprising `variant` construction + +CWG poll 6: [P2104R0 "Disallow changing concept values"](http://wg21.link/p2104r0), resolving 1 NB comment: + + * NB GB 046: Allow caching of evaluations of concept-ids + +CWG poll 7: [P2107R0 "Copy semantics of coroutine parameters"](http://wg21.link/p2107r0), resolving 1 CWG issue and 1 NB comment: + + * [2436](http://wg21.link/cwg2436) Copy semantics of coroutine parameters + * NB US 064: Apply Coroutines TS issue 33 from [P0664](http://wg21.link/p0664) + +CWG poll 8: [P2092R0 "Disambiguating *nested-requirement*s"](http://wg21.link/p2092r0) + +CWG poll 9: [Core issue resolutions](http://wg21.link/p2108r0) for 3 issues in "ready" status, resolving 4 issues: **(DR)** + + * [2053](http://wg21.link/cwg2053) `auto` in non-generic lambdas **resolved by CWG 2447** + * [2445](http://wg21.link/cwg2445) Partial ordering with rewritten candidates + * [2446](http://wg21.link/cwg2446) Questionable type-dependency of concept-ids + * [2447](http://wg21.link/cwg2447) Unintended description of abbreviated function templates + +CWG poll 10: [P2109R0 "Disallow `export import foo` outside of module interface"](http://wg21.link/p2109r0), resolving 1 NB comment: + + * NB US 084: Disallow `export import foo` outside of module interface + +CWG poll 11: [P2082R1 "Fixing CTAD for aggregates"](http://wg21.link/p2082r1) + +CWG poll 12: [NB comment resolution](http://wg21.link/p2113r0), resolving 2 NB comments: + + * NB CA 112: Matching of template parameters appearing in substituted parameter mappings + * NB US 120: "The same template parameter" in parameter mappings + +CWG poll 13: [P2115R0 "Merging of multiple definitions for unnamed unscoped enumerations"](http://wg21.link/p2115r0), resolving 1 NB comment: + + * NB US 069: Merging of multiple definitions for unnamed unscoped enumerations + +CWG poll 14: [P1815R2 "Translation-unit-local entities"](http://wg21.link/p1815r2), resolving 3 NB comments: + + * NB US 035: Referring to internal-linkage entities from certain exported ones should be ill-formed + * NB US 133: Header units containing internal-linkage entities + * NB US 134: Header units containing external-linkage entities + +CWG poll 15: [P2095R0 "Resolve lambda *init-capture* pack grammar"](http://wg21.link/p2095r0), resolving 1 issue: **with changes; see below** + + * [2378](http://wg21.link/cwg2378) Inconsistent grammar for reference *init-capture* of pack + +CWG poll 16: [P2002R1 "Defaulted comparison specification cleanups"](http://wg21.link/p2002r1) + +CWG poll 17: [P2085R0 "Consistent defaulted comparisons"](http://wg21.link/p2085r0) + +CWG poll 18: [P1908R1 "Reserving attribute namespaces for future use"](http://wg21.link/p1908r1) + +CWG poll 19: [P1937R2 "Fixing inconsistencies between `constexpr` and `consteval` functions"](http://wg21.link/p1937r2) + +### Library working group polls + +LWG poll 1 applies to the Library Fundamentals TS + +LWG poll 2: [Library issue resolutions](http://wg21.link/p2051r0) for 43 issues in "Ready" and "Tentatively Ready" status applied, resolving 26 NB comments: + + * [3194](http://wg21.link/lwg3194) ConvertibleTo prose does not match code + * [3233](http://wg21.link/lwg3233) Broken requirements for `shared_ptr` converting constructors + * [3254](http://wg21.link/lwg3254) Strike `stop_token`'s `operator!=` + * [3264](http://wg21.link/lwg3264) `sized_range` and `ranges::size` redundantly use `disable_sized_range` + * [3280](http://wg21.link/lwg3280) View converting constructors can cause constraint recursion and are unneeded + * [3281](http://wg21.link/lwg3281) Conversion from pair-like types to `subrange` is a silent semantic promotion **not applied; superseded by LWG3282 (LWG poll 3)** + * [3284](http://wg21.link/lwg3284) `random_access_iterator` semantic constraints accidentally promote difference type using unary negate + * [3285](http://wg21.link/lwg3285) The type of a customization point object shall satisfy `semiregular` + * [3286](http://wg21.link/lwg3286) `ranges::size` is not required to be valid after a call to `ranges::begin` on an `input range` + * [3291](http://wg21.link/lwg3291) `iota_view::iterator` has the wrong `iterator_category` + * [3292](http://wg21.link/lwg3292) `iota_view` is under-constrained + * [3294](http://wg21.link/lwg3294) `zoned_time` deduction guides misinterprets `string`/`char*` + * [3296](http://wg21.link/lwg3296) Inconsistent default argument for `basic_regex<>::assign` + * [3299](http://wg21.link/lwg3299) Pointers don't need customized iterator behavior + * [3300](http://wg21.link/lwg3300) Non-array `ssize` overload is underconstrained + * [3302](http://wg21.link/lwg3302) Range adaptor objects `keys` and `values` are unspecified + * [3303](http://wg21.link/lwg3303) Bad `constexpr` marker for `destroy`/`destroy_n` + * [3304](http://wg21.link/lwg3304) Allocate functions of `std::polymorphic_allocator` should require `[[nodiscard]]` + * [3307](http://wg21.link/lwg3307) `std::allocator().allocate(n)` + * [3310](http://wg21.link/lwg3310) Replace `SIZE_MAX` with `numeric_limits::max()` + * [3313](http://wg21.link/lwg3313) `join_view::iterator::operator--` is incorrectly constrained + * [3315](http://wg21.link/lwg3315) Correct allocator default behavior + * [3316](http://wg21.link/lwg3316) Correctly define epoch for `utc_clock` / `utc_timepoint` + * [3317](http://wg21.link/lwg3317) Incorrect `operator<<` for floating-point durations + * [3318](http://wg21.link/lwg3318) Clarify whether clocks can represent time before their epoch + * [3319](http://wg21.link/lwg3319) Properly reference specification of IANA time zone database + * [3320](http://wg21.link/lwg3320) `span::{cbegin,cend}` methods produce different results than `std::[ranges::]{cbegin,cend}` + * [3321](http://wg21.link/lwg3321) `uninitialized_construct_using_allocator` should use `construct_at` + * [3323](http://wg21.link/lwg3323) *`has-tuple-element`* helper concept needs `convertible_to` + * [3324](http://wg21.link/lwg3324) Special-case `std::{strong,weak,partial}_order` for pointers + * [3325](http://wg21.link/lwg3325) Constrain return type of transformation function for `transform_view` + * [3326](http://wg21.link/lwg3326) `enable_view` has false positives + * [3327](http://wg21.link/lwg3327) Format alignment specifiers vs. text direction + * [3329](http://wg21.link/lwg3329) `totally_ordered_with` both directly and indirectly requires `common_reference_with` + * [3330](http://wg21.link/lwg3330) Include `` from most library headers + * [3331](http://wg21.link/lwg3331) Define `totally_ordered[_with]` in terms of *`partially-ordered-with`* + * [3332](http://wg21.link/lwg3332) Issue in [time.format] + * [3338](http://wg21.link/lwg3338) Rename `default_constructible` to `default_initializable` + * [3346](http://wg21.link/lwg3346) `pair` and `tuple` copy and move constructor have backwards specification + * [3349](http://wg21.link/lwg3349) Missing `__cpp_lib_constexpr_complex` for [P0415R1](http://wg21.link/p0415r1) + * [3350](http://wg21.link/lwg3350) Simplify return type of `lexicographical_compare_three_way` + * [3351](http://wg21.link/lwg3351) `ranges::enable_safe_range` should not be constrained + * [3356](http://wg21.link/lwg3356) `__cpp_lib_nothrow_convertible` should be `__cpp_lib_is_nothrow_convertible` + * [3360](http://wg21.link/lwg3360) `three_way_comparable_with` is inconsistent with similar concepts + * NB US 156: Ignore cv-qualifiers for customization point objects + * NB US 162: Default behavior for `destroy` is `destroy_at` + * NB US 163: Default behavior for `construct` is `construct_at` + * NB CA 178: Special-case `std::{strong,weak,partial}_order` for pointers + * NB US 181: Include `` from most library headers + * NB US 201: `totally_ordered_with` both directly and indirectly requires `common_reference_with` + * NB GB 202: Define `totally_ordered[_with]` in terms of *`partially-ordered-with`* + * NB US 213: `uninitialized_construct_using_allocator` should use `construct_at` + * NB US 217: `polymorphic_allocator::*_object` should be `[[nodiscard]]` + * NB JP 218: Replace `SIZE_MAX` with `numeric_limits::max()` + * NB JP 219: Replace `SIZE_MAX` with `numeric_limits::max()` + * NB GB 225: Format alignment specifiers vs. text direction + * NB PL 247: `span::c[r]{begin,end}` return type confusion + * NB US 262: Avoid unary negation in definition of `random_access_iterator` + * NB DE 282: Make `enable_view` less greedy + * NB US 286: Constraints on `iota_view`, *`forwarding-range`* + * NB US 287: `iota_view::iterator` is a Cpp17InputIterator + * NB US 294: `join_view::iterator::operator--` is improperly constrained + * NB GB 299: *`has-tuple-element`* helper concept needs `convertible_to` + * NB US 302: Remove some converting constructors for views to avoid constraint recursion + * NB US 303: Constrain return type of transformation function for `transform_view` + * NB US 304: Interaction between `begin` and `size` on input ranges + * NB GB 333: Correctly define epoch for `utc_clock` / `utc_timepoint` + * NB US 334: Incorrect `operator<<` for floating-point durations + * NB GB 335: Clarify whether clocks can represent time before their epoch + * NB DE 344: Properly reference specification of IANA time zone database + +LWG poll 3: [Library issue resolutions](http://wg21.link/p2117r0) for 65 issues in "Immediate" status applied, resolving 8 NB comments: + + * [1203](http://wg21.link/lwg1203) More useful rvalue stream insertion + * [2859](http://wg21.link/lwg2859) Definition of reachable in [ptr.launder] misses pointer arithmetic from pointer-interconvertible object + * [3018](http://wg21.link/lwg3018) `shared_ptr` of function type + * [3050](http://wg21.link/lwg3050) Conversion specification problem in `chrono::duration` constructor + * [3141](http://wg21.link/lwg3141) CopyConstructible doesn't preserve source values + * [3150](http://wg21.link/lwg3150) UniformRandomBitGenerator should validate `min` and `max` + * [3175](http://wg21.link/lwg3175) The CommonReference requirement of concept SwappableWith is not satisfied in the example + * [3200](http://wg21.link/lwg3200) `midpoint` should not constrain `T` is complete + * [3201](http://wg21.link/lwg3201) `lerp` should be marked as `noexcept` + * [3226](http://wg21.link/lwg3226) `zoned_time` constructor from `string_view` should accept `zoned_time` + * [3237](http://wg21.link/lwg3237) LWG [3038](http://wg21.link/lwg3038) and [3190](http://wg21.link/lwg3190) have inconsistent PRs + * [3238](http://wg21.link/lwg3238) Insufficiently-defined behavior of `std::function` deduction guides + * [3242](http://wg21.link/lwg3242) `std::format` missing rules for *arg-id* in *width* and *precision* + * [3243](http://wg21.link/lwg3243) `std::format` and negative zeroes + * [3247](http://wg21.link/lwg3247) `ranges::iter_move` should perform ADL-only lookup of `iter_move` + * [3248](http://wg21.link/lwg3248) `std::format` `#b`, `#B`, `#o`, `#x`, and `#X` presentation types misformat negative numbers + * [3250](http://wg21.link/lwg3250) `std::format` `#` (alternate form) for NaN and inf + * [3251](http://wg21.link/lwg3251) Are `std::format` alignment specifiers applied to string arguments? + * [3252](http://wg21.link/lwg3252) `parse`'s locale aware modifiers for commands are not consistent with POSIX spec + * [3255](http://wg21.link/lwg3255) `span`'s array constructor is too strict + * [3260](http://wg21.link/lwg3260) `year_month*` arithmetic rejects durations convertible to `years` + * [3262](http://wg21.link/lwg3262) Formatting of negative durations is not specified **with changes; see below** + * [3269](http://wg21.link/lwg3269) Parse manipulators do not specify the result of the extraction from stream + * [3270](http://wg21.link/lwg3270) Parsing and formatting `%j` with durations + * [3282](http://wg21.link/lwg3282) `subrange` converting constructor should disallow derived to base conversions + * [3301](http://wg21.link/lwg3301) `transform_view::iterator` has incorrect `iterator_category` + * [3314](http://wg21.link/lwg3314) Is stream insertion behavior locale dependent when `Period::type` is `micro`? + * [3328](http://wg21.link/lwg3328) Clarify that `std::string` is not good for UTF-8 + * [3334](http://wg21.link/lwg3334) `basic_osyncstream` move assignment and destruction calls `basic_syncbuf::emit()` twice + * [3335](http://wg21.link/lwg3335) Resolve C++20 NB comments US 273 and GB 274 + * [3340](http://wg21.link/lwg3340) Formatting functions should throw on argument/format string mismatch in [format.functions] + * [3347](http://wg21.link/lwg3347) `std::pair` now requires `T` and `U` to be *`less-than-comparable`* + * [3348](http://wg21.link/lwg3348) `__cpp_lib_unwrap_ref` in wrong header + * [3352](http://wg21.link/lwg3352) `strong_equality` isn't a thing + * [3354](http://wg21.link/lwg3354) `has_strong_structural_equality` has a meaningless definition + * [3355](http://wg21.link/lwg3355) The memory algorithms should support move-only input iterators introduced by [P1207](http://wg21.link/p1207) + * [3358](http://wg21.link/lwg3358) [span.cons] is mistaken that `to_address` can throw + * [3359](http://wg21.link/lwg3359) `` leap second support should allow for negative leap seconds + * [3362](http://wg21.link/lwg3362) Strike `stop_source`'s `operator!=` + * [3363](http://wg21.link/lwg3363) `drop_while_view` should opt-out of `sized_range` + * [3364](http://wg21.link/lwg3364) Initialize data members of ranges and their iterators + * [3367](http://wg21.link/lwg3367) Integer-class conversions should not throw + * [3369](http://wg21.link/lwg3369) `span`'s deduction-guide for built-in arrays doesn't work + * [3371](http://wg21.link/lwg3371) `visit_format_arg` and `make_format_args` are not hidden friends + * [3372](http://wg21.link/lwg3372) `format_to` should not try to deduce `Out` twice + * [3373](http://wg21.link/lwg3373) `{to,from}_chars_result` and `format_to_n_result` need the "we really mean what we say" wording + * [3374](http://wg21.link/lwg3374) [P0653](http://wg21.link/p0653) + [P1006](http://wg21.link/p1006) should have made the other `std::to_address` overload `constexpr` + * [3375](http://wg21.link/lwg3375) `decay` in `viewable_range` should be `remove_cvref` + * [3377](http://wg21.link/lwg3377) `elements_view::iterator` befriends a specialization of itself + * [3379](http://wg21.link/lwg3379) `safe` in several library names is misleading + * [3380](http://wg21.link/lwg3380) `common_type` and comparison categories + * [3381](http://wg21.link/lwg3381) `begin` and `data` must agree for `contiguous_range` + * [3382](http://wg21.link/lwg3382) NTTP support for `pair` and `array` + * [3383](http://wg21.link/lwg3383) [time.zone.leap.nonmembers] `sys_seconds` should be replaced with `seconds` + * [3384](http://wg21.link/lwg3384) `transform_view::sentinel` has an incorrect `operator-` + * [3385](http://wg21.link/lwg3385) `common_iterator` is not sufficiently constrained for non-copyable iterators + * [3387](http://wg21.link/lwg3387) `reverse_view` unintentionally requires `range` + * [3388](http://wg21.link/lwg3388) `view` iterator types have ill-formed `<=>` operators + * [3389](http://wg21.link/lwg3389) A move-only iterator still does not have a `counted_iterator` + * [3390](http://wg21.link/lwg3390) `make_move_iterator()` cannot be used to construct a `move_iterator` for a move-only iterator + * [3393](http://wg21.link/lwg3393) Missing/incorrect feature test macro for coroutines + * [3395](http://wg21.link/lwg3395) Definition for three-way comparison needs to be updated (US 152) + * [3396](http://wg21.link/lwg3396) Clarify point of reference for `source_location::current()` (DE 169) + * [3397](http://wg21.link/lwg3397) `ranges::basic_istream_view::iterator` should not provide `iterator_category` + * [3398](http://wg21.link/lwg3398) `tuple_element_t` is also wrong for `const subrange` + * NB US 152: Update definition for three-way comparison + * NB DE 169: Clarify point of reference for `source_location::current()` + * NB GB 229: Allow `std::format` to throw for argument / format string mismatch + * NB US 273: Rename `all_view` + * NB GB 274: Add `range_size_t` + * NB US 284: Prevent conversion from pair-like types to `subrange`s + * NB US 285: Prevent derived-to-base slicing with `subrange` constructors + * NB NL 375: Clarify that `std::string` is not good for UTF-8 + +LWG poll 4: [P2045R1 "Missing *Mandates:* for the standard library"](http://wg21.link/p2045r1) + +LWG poll 5: [P1460R1 "Mandating the Standard Library: Clause 20 - Utilities library"](http://wg21.link/p1460r1) **with changes; see below** + +LWG poll 6: [NB comment resolution](http://wg21.link/p1963r0) for 1 comment applied, also resolving 1 issue: + + * [3156](http://wg21.link/lwg3156) `ForwardIterator` should only mean forward iterator + * NB US 313: Properly define scope of subclause [algorithms.requirements] to cover [specialized.algorithms] + +LWG poll 7: [NB comment resolution](http://wg21.link/p1983r0) for 5 comments applied, also resolving 1 issue: + + * [3278](http://wg21.link/lwg3278) `join_view::iterator` tries to write through `const join_view` pointer + * NB US 283: Specification of *`has-arrow`* concept is ill-formed + * NB US 291: `join_view::begin` requires mutable data + * NB US 292: Incorrect constructor for `join_view::iterator` + * NB US 296: Converting constructor for `split_view::outer_iterator` is slightly wrong + * NB GB 301: Add `filter_view::pred()` accessor + +LWG poll 8: [P1981R0 "Rename `leap` to `leap_second`"](http://wg21.link/p1981r0), resolving 1 NB comment: + + * NB DE 345: Rename `leap` to `utc_leap` + +LWG poll 9: [P1982R0 "Rename `link` to `time_zone_link`"](http://wg21.link/p1982r0), resolving 1 NB comment: + + * NB DE 346: Rename `link` to `zone_link` + +LWG poll 10: [P2101R0 "'Models' subsumes 'satisfies'"](http://wg21.link/p2101r0), resolving 1 issue and 2 NB comments: + + * [3345](http://wg21.link/lwg3345) Incorrect usages of "models" versus "satisfies" + * NB US 298: `views::common` incorrectly uses "models" + * NB US 300: Specification of *`semiregular-box`* should not use "models" + +LWG poll 11: [P1115R3 "Improving the return value of erase-like algorithms, part 2: free `erase[_if]`"](http://wg21.link/p1115r3), resolving 2 NB comments: + + * NB DE 231: Non-member `erase[_if]` should return the number of elements deleted + * NB GB 234: Non-member `erase[_if]` should return the number of elements deleted + +LWG poll 12: [P2102R0 "Make 'implicit expression variations' more explicit"](http://wg21.link/p2102r0), resolving 1 NB comment: + + * NB US 185: Specify "implicit expression variations" + +LWG poll 13: [P1994R1 "`elements_view` needs its own sentinel"](http://wg21.link/p1994r1), resolving 1 issue: + + * [3386](http://wg21.link/lwg3386) `elements_view` needs its own `sentinel` type + +LWG poll 14: [P1868R2 "🦄 width: clarifying units of width and precision in `std::format`"](http://wg21.link/p1868r2), resolving 1 issue and 1 NB comment: + + * [3290](http://wg21.link/lwg3290) Are `std::format` field widths code units, code points, or something else? + * NB US 228: Specify units of width and precision + +LWG poll 15: [P1956R1 "On the names of low-level bit manipulation functions"](http://wg21.link/p1956r1), resolving 5 NB comment: + + * NB PL 326: Rename `log2p1` to `bit_length` + * NB US 327: `log2p1` collides with IEEE-754 floating-point operation + * NB US 328: Rename `ceil2` and `floor2` + * NB GB 331: Rename `ceil2` and `floor2` + * NB GB 332: `log2p1` collides with IEEE-754 + +LWG poll 16: [P1976R2 "Fixed-size `span` construction from dynamic range"](http://wg21.link/p1976r2), resolving 1 NB comment: + + * NB PL 250: Size mismatch for fixed-sized `span` + +LWG poll 17: [P1964R2 "Wording for *`boolean-testable`*"](http://wg21.link/p1964r2), resolving 4 NB comments: + + * NB US 195: Remove concept *`boolean`* and use `convertible_to` instead + * NB US 196: Simplify concept *`boolean`* + * NB GB 197: Remove concept *`boolean`* and use `convertible_to` instead + * NB US 198: Fix concept definition of *`boolean`* + +LWG poll 18: [P2091R0 "Issues with range access customization point objects"](http://wg21.link/p2091r0), resolving 3 issues and 1 NB comment: + + * [3258](http://wg21.link/lwg3258) Range access and `initializer_list` + * [3299](http://wg21.link/lwg3299) Pointers don't need customized iterator behavior + * [3368](http://wg21.link/lwg3368) `memory_order::memory_order_foo` broken in C++20 + * NB GB 275: `ranges::{begin,end}` should not accept arrays of unknown bound + +LWG poll 19: [P0586R2 "Safe integral comparisons"](http://wg21.link/p0586r2), resolving 1 NB comment: **with changes; see below** + + * NB DE 208: Comparing values of different arithmetic types + +LWG poll 20: [P1831R1 "Deprecating `volatile`: library"](http://wg21.link/p1831r1), resolving 3 NB comments: **with changes; see below** + + * NB CZ 004: Adopt P1831 (deprecating `volatile`: library) + * NB CA 210: Deprecate some uses of `volatile` in the library + * NB US 211: Deprecate some uses of `volatile` in the library + +LWG poll 21: [P1973R1 "Rename `_default_init` functions"](http://wg21.link/p1973r1), resolving 1 NB comment: **with changes; see below** + + * NB DE 002: Rename `make_{unique,shared}_default_init` to `make_{unique,shared}_nonvalue_init` + +LWG poll 22: [P1243R4 "Rangify new algorithms"](http://wg21.link/p1243r4), resolving 3 NB comments: + + * NB FR 305: Add more range-enabled algorithms + * NB US 307: Add more range-enabled algorithms + * NB US 318: Handle negative shift counts + +LWG poll 23: [NB comment resolutions](http://wg21.link/p2106r0) for 2 NB comments: + + * NB GB 315: Define conversion operators for `next_permutation_result` + * NB GB 316: Algorithm result types should be distinct types, not aliases + +LWG poll 24: [P1739R4 "Avoid template bloat for `safe_ranges` in combination with "subrange-y" view adaptors"](http://wg21.link/p1739r4), resolving 2 NB comments: + + * NB US 272: API improvements for ranges + * NB DE 288: Overspecification of return types of view adaptors + +LWG poll 25: [P2116R0 "Remove tuple-like protocol support from fixed-extent `span`"](http://wg21.link/p2116r0), resolving 1 issue: + + * [3212](http://wg21.link/lwg3212) `tuple_element_t<1, const span>` is `const int` + +LWG poll 26: [P1970R2 "Consistency for `size` functions: add `ranges::ssize`"](http://wg21.link/p1970r2), resolving 1 NB comment: + + * NB DE 269: Enable `ssize()` on ranges + +## Notable changes to papers as polled + +### CWG poll 3 + +Replaced reference to non-existent grammar production *import-directive* with +the intended grammar production *pp-import*. + +### CWG poll 15 + +The location of the ellipsis in the quoted grammar in +[expr.prim.lambda.capture]p2 didn't match the grammar production being quoted, +and was relocated to the intended position. + +### LWG poll 3 + +The example added by LWG3262 did not take into account that +the *chrono-specs* in a *chrono-format-spec* are required to start with +a `%` character, so the `-` inserted for a negative duration is always +at the start of the field. +Consultation with LWG indicates that the result of this rule interaction +is desirable, so the example has been updated to match. + +### LWG poll 5 + +This paper replaced *Requires:* with *Mandates:* +in the `tuple(tuple&&)` constructor. +The resolution of LWG issue 2899 (from 2019-08 LWG motion 1) +already replaced *Requires:* with *Constraints:*. +The change in this paper was not applied, +as it would violate the intent established in LWG 2899 +that the `is_move_constructible` trait can detect +the move-constructibility of `tuple`. + +### LWG poll 19 + +As requested by the poll, +the feature test macro added by this paper was changed +from `__cpp_lib_cmp_equal` to `__cpp_lib_integer_comparison_functions`. + +### LWG poll 20 + +This paper suggested adding a *Constraints:* clause to `atomic_init`, but +also adding wording that would remove those constraints as a deprecated +feature. However, `atomic_init` has itself been deprecated since the +wording was created. The result is that all calls to the function are +deprecated, but calls that violate the *Constraints:* are deprecated in +two different ways. Therefore the *Constraints:* have no effect, and have +been removed. + +### LWG poll 21 + +This paper renamed a feature test macro but didn't suggest bumping its number +to the date of the rename. After consultation with SG10, the macro's version +has been increased to `202002L`. + +## Disposition of editorial NB comments on C++ 2020 CD1 + +Listed below are disposition for all comments that were +filed as editorial in the ISO 14882 CD (2019) NB comments +and not resolved in [N4842](http://wg21.link/n4842). +For the disposition of comments resolved in N4842, see +the corresponding Editors' Report, [N4843](http://wg21.link/n4843). + +JP 218: **Accepted** + + * Forwarded to LWG for consideration; + [LWG issue 3310](https://cplusplus.github.io/LWG/issue3310) opened to track this comment. + * LWG accepted; resolved by LWG poll 2. + +JP 219: **Accepted** + + * Forwarded to LWG for consideration; + [LWG issue 3310](https://cplusplus.github.io/LWG/issue3310) opened to track this comment. + * LWG accepted; resolved by LWG poll 2. + +GB 225: **Accepted** + + * Proposed change is not editorial. Forwarded to LWG for consideration. + [LWG issue 3327](https://cplusplus.github.io/LWG/issue3327) opened to track this comment. + * LWG accepted; resolved by LWG poll 2. + +US 327: **Accepted** + + * The proposed change is not editorial. + Forwarded to LEWG for consideration. + * Duplicate of PL 326. + * LWG accepted; resolved by LWG poll 15 ([P1956](http://wg21.link/p1956)). + +US 328: **Accepted** + + * The proposed change is not editorial. + Forwarded to LEWG for consideration. + * Duplicate of PL 326. + * LWG accepted; resolved by LWG poll 15 ([P1956](http://wg21.link/p1956)). + +## Notable editorial changes + +### Value of `__cplusplus` + +The value of the `__cplusplus` macro has been increased to `202002L` for C++20. + + +### "Recommended practice" sections + +Some wording that was previously expressing normative encouragement +by way of notes has been replaced with "Recommended practice" sections, +following the example of the C standard. + +### Fixed misapplication of part of P0896R4 + +Due to a copy-paste error, the default constructor of `front_insert_iterator` +was inadvertently changed to a non-default constructor +when P0896R4 was applied by 2018-11 LWG Motion 25. This has been corrected. + +### Fixed misapplication of part of P1878R1 + +P1878R1, applied by 2019-11 LWG Motion 9, +requested that the concept `writable` +be globally renamed to `indirectly_writable`. +The rename missed some instances that were added by other papers +also moved at the 2019-11 meeting. +This has been corrected. + +### Fixed misapplication of part of P0815R0 + +The application of the resolution of LWG2950, +applied as part of P0815R0 by 2017-11 LWG Motion 4, +inadvertently removed the `b =` +from the specification of `operator>>=(byte& b, IntType shift)`. +This has been corrected. + +### Section labels + +The section [language.support] has been renamed to [support] +in order to prevent the section heading being broken across two lines. + +Some missing entries in the "Cross references from ISO C++ 17" appendix +have been added; all section labels present in C++17 but not in C++20 +are now listed. + +### *Requires:* element + +As a result of the various "Mandating" papers, the *Requires:* element is +unused outside of Annex D, so the description of that element has been +moved there too. + +## Minor editorial fixes + +A log of editorial fixes made to the working draft since N4849 is below. +This list excludes changes +that do not affect the body text or only affect whitespace or typeface. For a +complete list including such changes (or for the actual deltas applied by these +changes), consult the [draft sources on github](https://github.com/cplusplus/draft/compare/n4849...n4861). + + commit 235e9a0cf66a997d05d068903ea5aeebc2e8e82f + Author: Casey Carter + Date: Wed Jan 15 08:27:29 2020 -0800 + + [span.overview] Correct typo (#3633) + + Fixes #3632. + + commit 1c0171894b791258539854d98fa5b157b8d6822b + Author: Johel Ernesto Guerrero Peña + Date: Wed Jan 22 07:48:32 2020 -0400 + + [optional.optional, optional.ctor] Fix constexpr/explicit position (#3644) + + commit d29ae50e1d39d56e54e142b13737d627709d39dc + Author: Casey Carter + Date: Wed Jan 22 08:19:13 2020 -0800 + + [expr.prim.req.nested] Add missing semicolon to example + + commit 9b6c64fabdb05432ecdd238900ca03ee63c33cf1 + Author: Andrzej Krzemieński + Date: Fri Jan 24 00:30:17 2020 +0100 + + [temp.constr.op] Fix missing parentheses in example (#3643) + + commit 22a182262f25f9fe79d8ff7a4e1d1460002bf9cd + Author: Casey Carter + Date: Fri Jan 24 09:49:58 2020 -0800 + + [lib] Do not use "for some" to mean "for an arbitrary" (#3146) + + commit 76e7c18a1255a42c94cb3073de47969dc17549f1 + Author: Casey Carter + Date: Mon Oct 21 12:20:13 2019 -0700 + + [ranges] Rename make-unsigned-like to to-unsigned-like + + Resolves #3300. + + commit bf7a213db29cbd3f7c8f21798a1e6552d161594b + Author: Casey Carter + Date: Mon Oct 21 12:24:10 2019 -0700 + + [ranges] make-unsigned-like-t is an exposition-only alias template + + ...instead of an exposition-only macro. In other words, it's used as `make-unsigned-like-t` instead of `make-unsigned-like-t(meow)`. + + commit 90ded44703e48b32401fc766337d3e0bf0a8eaca + Author: Casey Carter + Date: Mon Oct 21 12:29:09 2019 -0700 + + [ranges.syn] to-unsigned-like operates on expressions, not objects + + commit 85e5aeb00ae69803a3ff10f96387d151af654f9c + Author: Daveed Vandevoorde + Date: Tue Jan 28 14:35:02 2020 -0500 + + [temp.constr.normal] Remove extraneous parentheses on concept use (#3651) + + commit 61952121cc594d4d290bfb17b0ea95d50c6ed534 + Author: Daveed Vandevoorde + Date: Wed Jan 29 16:34:44 2020 -0500 + + [temp.constr.normal] Confusing identifier used in explanation (#3652) + + commit 694d84cae2e5496f59102f3eb7f386925be199dd + Author: pppalka + Date: Wed Feb 5 16:11:04 2020 -0500 + + [range.istream.iterator] Fix bad reference to member name (#3661) + + The description of basic_istream_view::iterator::operator*() refers to a + nonexistent data member value_ of basic_istream_view instead of the data + member object_. + + commit cbbbbc53b68c18a611bf75c5e626ad2c6aa56a3c + Author: pppalka + Date: Wed Feb 5 17:27:51 2020 -0500 + + [range.join.sentinel], [range.split.view] Fix typos (#3656) + + commit 634695586ebe9060f20a4b104aaefd9db9237f75 + Author: Thomas Köppe + Date: Mon Feb 10 21:21:33 2020 +0100 + + [depr.c.headers] Rename heading to just "C headers". + + The term "C headers" is just a label for a certain part of the C++ standard library; there is no deeper connection to the C language. + + commit 0354125f1cdfef949d80053528c4a1a4f74b1dea + Author: Richard Smith + Date: Mon Feb 10 21:54:51 2020 +0100 + + [temp.func.order] Fix comment to refer to correct overload resolution result. + + #1a is a fiction invented by partial ordering. The callee is #1 from which #1a was generated. + + commit fe46a2b9142c8f3e931806f0433a13d5a8478100 + Author: Richard Smith + Date: Mon Feb 10 23:19:00 2020 +0100 + + Update value of __cplusplus to 202002L + + commit 977961d675f77c0874b10a3f834984e7576cacfb + Author: Thomas Köppe + Date: Mon Feb 10 23:59:08 2020 +0100 + + [dcl.fct] Fix reference to temp.fct. + + This reference was originally spelled "17.6.5" in the wording paper P1141R2, + where it was relative to the Concepts TS, and the error slipped through. + During motion application, we spotted the error, but not the cause, and + picked temp.over.link as a "best-fit" replacement, when in fact the correct + reference is temp.fct. + + commit d668fd6d52f39aab030628185f5f1b747837f62a + Author: Thomas Köppe + Date: Fri Feb 14 10:51:20 2020 +0100 + + [conv.rank] Change "size" to "width" in conversion rank relation (#3675) + + "size" has no defined meaning here; CWG confirmed that this is intended to be interpreted as "width". + + commit 7918bc2a036e71fca76468f341c8302a676be580 + Author: Thomas Köppe + Date: Tue Feb 11 16:12:21 2020 +0100 + + [cmp, comparisons] Move description of compare_three_way. + + Moves the definition and specification of class compare_three_way from + [cmp, 17.11] to [comparisons, 20.14.7]. Also adds a declaration of this + class to the synopsis of and removes a paragraph that says + (now redundantly) that the class is available also via inclusion of + . + + This is a partial response to NB GB 175 (C++20 CD). + + commit 43876c3008180b7e6b398bc0320baf7d06ac9d7f + Author: Jens Maurer + Date: Mon Jan 13 20:46:47 2020 +0100 + + [dcl.attr] Introduce 'Recommended practice' paragraphs. + + commit 78de92453c9c58450ac0574529ad9a4673786124 + Author: Jens Maurer + Date: Sun Feb 23 15:19:09 2020 +0100 + + [temp.func.order] Add bullets to clarify long sentence. + + commit 887d0f58a6a2f15617084bac462d730a23001571 + Author: Richard Smith + Date: Tue Feb 25 17:44:13 2020 -0800 + + [basic.def.odr] Clarify that translation units lacking a + private-module-fragment are definition domains. + + commit f32471ed53b621309fca9b1a75341bd9b9f6ede6 + Author: Dawn Perchik + Date: Fri Feb 21 12:49:20 2020 -0800 + + [expr.prim.lambda.capture]/p2 Fix P2095R0 wording: move "...opt" after "identifier" + + commit 090d7d8c96ec5e6371e087fd3f1d4455a6dbb7bd + Author: Dawn Perchik + Date: Fri Feb 21 13:39:40 2020 -0800 + + [allocator.uses.construction] Give a name to generic lambda type + parameter to allow idiomatic use of std::forward. + + commit 193040646cc01368e8c20b4600452046e8eaf660 + Author: Jens Maurer + Date: Mon Feb 24 07:54:11 2020 +0100 + + [algorithms.requirements] Fix non-sensical English for NoThrowForwardIterator + + commit 2eec680c4bfde4ec961041a71f5de95c59c8a4e8 + Author: Jens Maurer + Date: Wed Feb 26 00:34:24 2020 +0100 + + [uninitialized.move,uninitialized.copy] Use \countedrange where applicable. + + commit 14fd38fd5ed2cfebe608b2ed2c7d1f00d88a9baf + Author: Jens Maurer + Date: Wed Feb 26 00:40:25 2020 +0100 + + [specialized.algorithms] Whitespace and punctuation tweaks. + + - Hyphenate 'potentially-overlapping subobject'. + - Add whitespace in range. + + commit eff97945e2e8148d6fb204a96db7b6ba6845fd49 + Author: Dawn Perchik + Date: Sun Feb 23 19:44:27 2020 -0800 + + [range.elements.sentinel] Fix template-head for elements_view::sentinel added by P1994R1 + + commit cfd03b579bba7247bc826ed4a00fbf64c603d5bf + Author: Richard Smith + Date: Mon Mar 2 16:10:05 2020 -0800 + + [format.string.std] Put code point ranges in numerical order and collapse two adjacent code points into a range. + + commit 9ce9b23148af2f744ef6707713839aa550f44999 + Author: Richard Smith + Date: Mon Mar 2 16:41:36 2020 -0800 + + [intro.ack] Add Unicode to the list of registered trademarks we mention. + + commit 8dc23664d32a21c89eaeacd8ecd6cc675b1bcc4a + Author: Richard Smith + Date: Mon Mar 2 17:31:45 2020 -0800 + + [span.sub], [span.objectrep] Use direct-list-initialization in span + construction to compensate for changes in P1976R2. + + commit 39a1f591610040c0c53ed741ecbee52543c7ce47 + Author: Dawn Perchik + Date: Sun Feb 23 12:25:17 2020 -0800 + + [range.prim.size] Change "make-unsigned-like" to "to-unsigned-like" as per #3311 + + commit 8b5636fe7379cf4f1a4a0eb3eee32d9574b93a8a + Author: Dawn Perchik + Date: Sun Feb 23 12:46:23 2020 -0800 + + [ranges] Fix issues with wording of P2091R0 as suggested in #3752 + + [range.prim.data] Fix typo "expresssion-equivalent" + [range.access.rend] Fix cases where "rbegin" should be "rend" + [range.prim.size] Fix "E" to be "t" in "expression-equivalent to" expressions + + commit 202bef9db425c5d51c8b0aced9fb5c65778e914f + Author: Richard Smith + Date: Tue Mar 3 12:53:38 2020 -0800 + + [atomics] Remove redundant (and wrong in several places) qualification + of is_always_lock_free. + + commit a63805dc0719bebdc065b63498613b9c742f2bc2 + Author: Richard Smith + Date: Tue Mar 3 12:56:49 2020 -0800 + + [atomics.types.float] Remove meaningless A:: qualification. + + commit f3825d77e61b7140c2fbd9b8ef3e11b3bda35e46 + Author: Richard Smith + Date: Wed Mar 4 13:25:33 2020 -0800 + + [atomics.types.operations] Remove inaccurate introductory note + concerning 'volatile'. + + Fixes #3816. + + commit e8121bf5223690fddb459ab45d1fa474dda1134a + Author: Richard Smith + Date: Wed Mar 4 13:27:10 2020 -0800 + + [version.syn] Bump value of __cpp_lib_smart_ptr_for_overwrite to 202002L + to match the adoption date of the paper that introduced it. + + Fixes #3817. + + commit 65e3f2d3cdcb076d452c33cce0dd22ab05e65451 + Author: Dawn Perchik + Date: Wed Feb 19 15:41:14 2020 -0800 + + [cpp.pre][cpp.module][cpp.import] Fix neither-nor wording to include verbs after the "nor" and add punctuation. + + commit 1fb2610634d54893eee344451cd517b964ea9815 + Author: Richard Smith + Date: Tue Feb 25 14:39:19 2020 -0800 + + [cpp.pre] Improve phrasing of restrictions around defining + module/import/export as macros before encountering a module/import + directive. + + commit f4512779aef04905e5238ac9630073cb7c892412 + Author: Richard Smith + Date: Tue Feb 25 13:26:08 2020 -0800 + + [lex.pptoken] Update English description of preprocessing-token to match + the updated grammar. + + commit ef53989b095cc68960fdf4f6e91586c2cc976a91 + Author: Richard Smith + Date: Tue Feb 25 14:19:35 2020 -0800 + + [cpp.pre] Avoid awkward phrasing "the last token in the sequence is the + first token in the sequence [...]". + + commit 2aa4d39cddf0b3bd38138c1cf16ee2e852734162 + Author: Richard Smith + Date: Tue Feb 25 14:25:54 2020 -0800 + + [cpp.pre] Reorder grammar before paragraph 1. + + Avoids a grammar description immediately following an example. + + commit 0b2916563f378fd44d6f0d62080042f6c360e440 + Author: Richard Smith + Date: Tue Feb 25 14:27:54 2020 -0800 + + [cpp.pre] Rearrange grammar into topological order. + + commit 3405cbec344e2be32ff80816d24bcad48e3f29e6 + Author: Richard Smith + Date: Tue Feb 25 14:32:00 2020 -0800 + + [cpp.pre] Clarify that the rule for conditionally-supported-declarations + resolves a parse ambiguity rather than determining program validity. + + commit 19e6a5982e3d5f1837d7415c918628018ca70af3 + Author: Richard Smith + Date: Tue Feb 25 15:29:20 2020 -0800 + + [lex.key] Add a proper grammar production for 'keyword'. + + Move export-keyword, import-keyword, and module-keyword out of our table + of keyword identifiers (where they don't fit) and make them directly be + grammar productions for keyword instead. + + commit ff98c30ce690ef375c73c0a9cf8555e8a774eefe + Author: Richard Smith + Date: Wed Mar 4 13:41:48 2020 -0800 + + [util.smartptr.atomic] Add example from Matthew Butler. + + commit e15a52a4ab45ceed8ce5731558df1c84a4e47c7f + Author: Richard Smith + Date: Wed Mar 4 13:44:35 2020 -0800 + + [temp.constr.atomic] Rephrase to make the meaning of "the same + *expression*" more obvious. + + commit 1eaf966e08f82b327a6ecf2d12a8e207d79c2916 + Author: Richard Smith + Date: Wed Mar 4 13:47:42 2020 -0800 + + [format.string.std] Clarify that "extended grapheme clusters" is defined + by UAX #29, but "estimated widths" is not. + + commit 02fe22bb9aaae190949ab4df53213d6f931eb827 + Author: Richard Smith + Date: Wed Mar 4 13:50:28 2020 -0800 + + [expr.const] Remove example that was made incorrect by P1937R2. + + Fixes #3792. + + commit 1119ab4d9560ca1007a7588b41d3151d2c579c44 + Author: Richard Smith + Date: Wed Mar 4 13:54:00 2020 -0800 + + [time.format] Fix description of - insertion and examples. + + * Place :% in correct order in example. + * Ensure that format specifier is at start of format-specs as required + by the grammar. + * Clarify that 'leftmost' means 'initial', and doesn't mean the final + format specifier in an RTL locale. + + Fixes #3810. + + commit 65784102a44ea16d590145e9468c9bd9d9254dc4 + Author: Richard Smith + Date: Wed Mar 4 14:03:18 2020 -0800 + + [std] Replace undefined term "automatic object" with "object with automatic storage duration" + + Similarly, replace "static object" with "object with static storage duration". + + commit a4589f234e216cb1c0bfd329e1f35d3a3334bc29 + Author: Richard Smith + Date: Wed Mar 4 14:06:34 2020 -0800 + + [temp.pre] Define "templated" not "templated entity" so that we can refer to "templated classes" and "templated functions". + + commit b1343bc461d0a9b03926f1251c419447c8bb57fb + Author: Richard Smith + Date: Wed Mar 4 14:20:09 2020 -0800 + + [expr.comma] Remove vestigial wording describing "temporary expression"s + + This term was replaced by machinery in [class.temporary], which properly handles this case. + + commit a7fc3f39067eeed59b089e9fdf4f2d53d91d9637 + Author: Jens Maurer + Date: Fri Jan 17 21:01:27 2020 +0100 + + [except.spec] Avoid reference to undeclared identifier in example. + + commit 3e9bb331467a32e757e218391f28f1190b80607b + Author: Jens Maurer + Date: Fri Jan 17 21:08:48 2020 +0100 + + [basic.fundamental] Clarify that in C, padding bits may cause traps. + + commit 8ad04ca4a3dfc35ae0096e14ce32acd2424c0d26 + Author: Richard Smith + Date: Wed Mar 4 14:29:10 2020 -0800 + + [dcl.constexpr] Add a note explaining that the result of a constexpr function can vary based on the result of is_constant_evaluated(). + + commit 8d587443a9f09fb040f8620b994ebeb1ea94fa49 + Author: Richard Smith + Date: Wed Mar 4 14:43:16 2020 -0800 + + [dcl.init] Add sub-bullets to description of class value-initialization. + + commit bd4c6deae766fc81388a1cb15e97af8a90784a75 + Author: Thomas Köppe + Date: Wed Mar 4 22:46:31 2020 +0000 + + [swappable.requirements] Add missing \pnum to example and remove stray paragraph breaks around notes. + + commit f7647912cde34959694a128beb1be7f56225c18b + Author: Richard Smith + Date: Wed Mar 4 15:00:43 2020 -0800 + + [class.mem] Add explicit-specialization to member-declaration grammar. + + This is an obvious oversight in the wording changes for CWG 727, whose purpose was to permit explicit specializations as member declarations. + + commit 6639bda6999ee917b6e653bb0971cb29b6606f2e + Author: Richard Smith + Date: Mon Feb 24 18:19:44 2020 -0800 + + [utilities] Cleanups after application of P1460R1. + + * Fix some cases where the library descriptive elements were not in the + right order. + * Remove redundant && in second argument of is_constructible_v to match + similar changes made by P1460R1. + + commit ce2e915455a2f297fff73b5788bc38b5b0841713 + Author: Richard Smith + Date: Mon Feb 24 19:29:04 2020 -0800 + + [basic.life] Add variable names for the old and new object in the + definition of "transparently replaceable" and simplify the exposition a + little. + + commit de25ccdaeda47a5719c9fa6bea1669ad85160d25 + Author: Richard Smith + Date: Wed Mar 4 15:39:34 2020 -0800 + + [extern.types] Strike footnote listing C stdlib types + + This footnote seemed like it was trying to exhaustively list all types imported from the C stdlib, but it was incomplete. Most notably, it was missing the types from ``. Removing rather than fixing since the list is of questionable value and would be likely to become stale again. + + commit 86d9ba406195fd8e0b0fb72723c5258b6cd422f1 + Author: Krystian Stasiowski + Date: Wed Feb 5 02:15:42 2020 -0500 + + [basic.types] Change "(possibly cv-qualified) void" to cv void + + commit 6de55fc7095bedb3aa9bc1f381767c5a6646eb1d + Author: Krystian Stasiowski + Date: Wed Feb 5 02:36:54 2020 -0500 + + [over.match.copy] Change "reference to (possibly cv-qualified) T" to "reference to cv2 T" + + commit 0886da388e11a5777e761df5538bbf84e98847e7 + Author: Krystian Stasiowski + Date: Wed Feb 5 02:41:47 2020 -0500 + + [dcl.init.list] Change "possibly cv-qualified" to cv + + commit 4570e3aacba6cff4add7f9acea652504b1604f2a + Author: Krystian Stasiowski + Date: Wed Feb 5 03:36:22 2020 -0500 + + [class.copy.ctor] Change "optionally cv-qualified" to cv + + commit a9a1e5faa0b805ea8ce8a961789caad5b5c3bb0e + Author: Krystian Stasiowski + Date: Wed Feb 5 03:37:44 2020 -0500 + + [dcl.init] Remove unused definition of a variable + + commit f611368d43b76cb0054c22cbe8cb987a18314e08 + Author: Krystian Stasiowski + Date: Thu Feb 6 15:08:29 2020 -0500 + + [temp.param] Change "optionally cv-qualified" to "possibly cv-qualified" + + commit d1d7769ab58636200e47f1365c61bbde85d8e287 + Author: Alisdair Meredith + Date: Thu Feb 6 03:32:23 2020 -0500 + + [diff.cpp17.iterators] Added compatibility note on iterator_traits + + The specialization of iterator_traits for pointers 'T*' in C++20 is now + constrained by 'is_object_v' and so no longer applies to pointers to + function, or to void. + + commit 1fda54c697dedd973459f67a552b79fd74dd47cb + Author: Casey Carter + Date: Sat Feb 15 14:56:12 2020 +0100 + + [functional.syn] Correct text in cross-reference comment + + commit af6e2d4da60d27cd230f321652868bf118deb001 + Author: Jens Maurer + Date: Sat Feb 22 09:31:04 2020 +0100 + + [concept.swappable,iterator.cust] Fix phrasing 'with no diagnostic required' + + commit 51364a8a7fed97dae305b5264b5204429ac71f6a + Author: Davis Herring + Date: Thu Aug 15 11:45:44 2019 -0600 + + [expr.type] Add "cv-combined" cross-reference + + It was moved to [conv.qual] + + commit 75f00f111ca0650542b2112c98496663870e416a + Author: Davis Herring + Date: Fri Nov 1 17:45:15 2019 -0600 + + [class] Remove misleading [expr.ass] reference + + commit 6db1c3cbb9f056ad6b41a3f3e44bdeddaa526063 + Author: Davis Herring + Date: Tue Feb 25 14:52:59 2020 -0700 + + [rand.util.canonical] Remove self-cross-reference + + commit 1f1c6eac3efc314be2f2a91c15d84f197a3f818a + Author: Dan Raviv + Date: Tue Feb 11 14:38:30 2020 +0100 + + [basic.pre] Improve consistency in list + + commit 63da1a59b0f932bee3f0a5b60286f97bd0c51f02 + Author: Richard Smith + Date: Wed Mar 4 15:59:19 2020 -0800 + + [rand.util.canonical] Convert normative duplication into a note. + + commit 344e9d2180f03eb667fa2cbe6127b82f13017b42 + Author: Frank Birbacher + Date: Fri Feb 14 20:55:30 2020 +0100 + + [stmt.return.coroutine] Use notion of "enclosing" for "return" + + commit 9cdb5763c5449bc1f94cfee6a75cff820060d3d5 + Author: Jens Maurer + Date: Thu Mar 5 21:25:03 2020 +0100 + + [temp.explicit] Add missing comma (#3822) + + commit 12620243dea3c4dd6881f9a1eab39a776b20727a + Author: Casey Carter + Date: Fri Mar 6 09:58:51 2020 -0800 + + [range.prim.cdata] Properly qualify ranges::cdata (#3793) + + commit 417053a6c695e69dc8b2be3ba690ae3e5eff0964 + Author: Casey Carter + Date: Thu Mar 5 11:33:33 2020 -0800 + + [front.insert.iterator] Correct mis-incorporation of P0896R4 + + What should be a defaulted default constructor is instead an ill-formed defaulted non-default constructor. This appears to be copy pasta from the original merge of P0896R4 in e85af9533ab6ab0f0b101ac61fc01ba47c406503. + + commit 8197fe6fce017d4929817541a5ffcdc9a6080242 + Author: Jens Maurer + Date: Sat Jan 11 11:58:25 2020 +0100 + + [over.oper] Clarify handling of individual operators. + + commit 9a408b17e1f20dad977b83deffe041f3d83b91b5 + Author: Jens Maurer + Date: Sat Jan 11 12:04:54 2020 +0100 + + [over] Use \keyword{operator} markup. + + Also use "cv1 T1" to concisely express that T1 is cv-unqualified. + + commit 9bf27483a8ac7603d70810ed0373338494820d71 + Author: Jens Maurer + Date: Mon Jan 13 22:34:49 2020 +0100 + + [over.oper] Clarify that operator functions must declare one of the allowed operators. + + Also turn explanatory material into a note. + + commit 2092becfe2fed97d95257efb78199f917cd0aa09 + Author: Jens Maurer + Date: Thu Jan 16 23:30:59 2020 +0100 + + [over.literal] Move out of [over.oper]. + + commit 00b66a1b8bd9389811ab81d0528ad09ad1960455 + Author: Richard Smith + Date: Fri Mar 6 15:40:33 2020 -0800 + + [over.oper] Consistently separate rewritten forms out from the running + text. + + [over.ref] Convert "->" to code font in rewritten form. + + commit 309f0afcb75d644cc52590cee2198a1f5626a19b + Author: Richard Smith + Date: Wed Feb 19 17:58:34 2020 -0800 + + [diff] Consistently format name of prior standards. + + commit df2f32725d6481b900e0b0f32fca51fceeb7ecfd + Author: Richard Smith + Date: Wed Feb 19 18:01:44 2020 -0800 + + [diff.cpp17.basic] Fix example added by P0593R6. + + Pseudo-destructors weren't permitted in constant expressions before + C++20. + + Fixes #3742. + + commit b4f66cf75f74f752f082ec495309cf36ef63be77 + Author: Richard Smith + Date: Wed Feb 19 18:07:54 2020 -0800 + + [basic.life] Update out-of-date wording to mention that + pseudo-destructors end the lifetime of an object. + + Fixes #3743. + + commit e1292d9747f16114b5ba83e82358552474902aa3 + Author: Richard Smith + Date: Tue Feb 25 15:53:20 2020 -0800 + + [intro.object] Remove note unhelpfully pointing out that C++ has types. + + commit b79babd1f932cf4db11eb9e05713c015ce4855c7 + Author: Johel Ernesto Guerrero Peña + Date: Thu Feb 27 19:01:45 2020 -0400 + + [any.synop,any.class,any.nonmembers] Format pack conventionally + + commit 98e736fac115efe282d635ab2b793cb89998c55a + Author: Jens Maurer + Date: Sat Jan 25 13:13:12 2020 +0100 + + [lex.icon,lex.fcon] Rework description to avoid redundancies. + + Also use the grammar non-terminals integer-literal and + floating-point-literal throughout the standard. + + commit cd3c0765aecfaf0167b4a9c88ad152a10b803e29 + Author: Jens Maurer + Date: Sat Mar 7 08:11:25 2020 +0100 + + [algorithms] Rename concept 'writable' to 'indirectly_writable'. + + Missed edits from application of P1878R1 (2019-11 LWG Motion 9). + + commit 18788a7812efc1e23a29b360fc7d98ad8b9a92e9 + Author: Kerdek + Date: Sat Mar 7 13:38:40 2020 -0500 + + [expr.ref] Fix terminology in description of access of non-static data members + + Objects have subjects, not members. + + commit 1e18d4cbf57fcd6a88452c1b54748980c88c5b6a + Author: Johel Ernesto Guerrero Peña + Date: Wed Feb 26 22:11:30 2020 -0400 + + [allocator.members] Replace SIZE_MAX with numeric_limits::max() + + commit 052b91a8e145bb5e01ae9b6bd307fb490c201cef + Author: Hubert Tong + Date: Tue Mar 3 12:25:48 2020 -0500 + + [class.friend] Add cross-reference for the namespace of the friend + + The cross-reference for "linkage of the namespace of which it is a + member" is useful for determining the linkage if the namespace is known; + however, there was no cross-reference to assist with determining the + namespace. + + A cross-reference to [namespace.memdef] is added. + + commit 24d517bc210a6e5f032da92785126c5fe77c36f3 + Author: Alisdair Meredith + Date: Sat Mar 7 13:49:33 2020 -0500 + + [util.smartptr.atomic] Apply conventional order to members of atomic smart pointers + + There is a consistent ordering of declarations for members + of std::atomc specializations, other than for the atomic + smart pointers. This patch reorders the declarations to + follow that convention. + + commit 8fc95077300d2691f4c5c25fcfd7b15e8987cc67 + Author: Krystian Stasiowski + Date: Mon Feb 17 21:03:16 2020 -0500 + + [basic.type.qualifier] Remove redundant wording + + commit e3fa5b5d10decc7b99ca37cc05dcddb2dee845a5 + Author: timsong-cpp + Date: Sat Mar 7 22:05:38 2020 +0100 + + [concept.constructible] is-default-initializable is not a concept (#3834) + + commit 34fcf8b77d33940ae564384ccb9264a6a52589c9 + Author: Jens Maurer + Date: Sun Mar 8 22:41:22 2020 +0100 + + [module.interface] Fix typo. (#3840) + + commit 645a1e4ff7d1ef1ad3ce527e758f9a350b1b6702 + Author: Jens Maurer + Date: Mon Mar 9 08:49:30 2020 +0100 + + [algorithms.general] Add [specialized.algorithms] to summary table. (#3838) + + commit 188de05527a9ea59ad7cf4f3a294a8356a4400f3 + Author: timsong-cpp + Date: Tue Mar 10 08:30:41 2020 +0100 + + [time.zone.zonedtime.overview] Fix typo (#3846) + + commit bcfa94647bf461766ba76fc4513aa75f4dc36394 + Author: Jonathan Wakely + Date: Tue Mar 10 19:44:05 2020 +0000 + + [range.split.outer,range.split.inner] Fix misuses of current_ (#3849) + + This restores references to the 'current' placeholder. + + commit f195f2300c212e7485f05606b28afa58a91c47f2 + Author: Jens Maurer + Date: Tue Mar 10 23:01:57 2020 +0100 + + [expr.prim.req,temp.concept] Add std:: qualification for library concepts + + used in core language clauses. + + commit 0559394e1c43f0595ff04868d809d289496e3ae4 + Author: Jens Maurer + Date: Tue Mar 10 22:50:28 2020 +0100 + + [basic,support] Correctly use 'startup' and 'start of program' + + commit 146c98453bf6292186a9020f0598ae03e050aae3 + Author: Jens Maurer + Date: Tue Mar 10 22:38:58 2020 +0100 + + [support] Renamed from [language.support]. + + commit 6025a8825ee068093064919274a1286a3ceb8df1 + Author: Jens Maurer + Date: Tue Mar 10 21:55:16 2020 +0100 + + [depr.conversions] Rename snake_case template parameters to CamelCase. + + commit c5be3ccf5cd5635ba3847acce70de64bf72a9ae9 + Author: Jens Maurer + Date: Sun Mar 8 22:43:03 2020 +0100 + + [over.oper] Make statement about non-overloadable operators a note. + + commit 4f0377b81e2b470d2d141c3ab6758957a74b21fa + Author: Jens Maurer + Date: Tue Mar 10 22:35:07 2020 +0100 + + [range.take.while.sentinel,range.elements.iterator] Rename exposition-only base-t to Base. + + commit 829b921bdc8be954fc3680088ffc38dc1d4d106a + Author: Jens Maurer + Date: Tue Mar 10 21:45:45 2020 +0100 + + [res.on.requires] Move description of 'Requires' element to Annex D + + commit cb02e1103df3f0c8744ca6620ec02e0ca5bc41a6 + Author: Jens Maurer + Date: Tue Mar 10 21:33:52 2020 +0100 + + [contents] Some standard library functions are not defined. + + commit 52e653f6211326beeceb2e68bda8a12abcb9e062 + Author: Jens Maurer + Date: Tue Mar 10 21:26:45 2020 +0100 + + [span.deduct] Rename template parameter 'End' to 'EndOrSize' + + because it also covers the size_type constructor of span. + + commit 611fda7e0caad0977ba40a836f9eaa1e30904ae7 + Author: Krystian Stasiowski + Date: Sun Mar 8 18:39:15 2020 -0400 + + [class] [over] Redundant specification of ignoring move special members + + commit 37deb529b19609e2494626af5d8bdf25f3833ab3 + Author: Jens Maurer + Date: Sun Mar 8 22:16:48 2020 +0100 + + [module.interface] Remove redundant bullet for exported declaration. + + commit aaf725a9363213124afd7edf7494b88ac77728e6 + Author: Alisdair Meredith + Date: Sat Mar 7 12:10:07 2020 -0500 + + [atomics] Consistent use of enum class memory_order + + Since the application of P0439R0, the library wording has been partially + updated to use the new scoped enumaration values whenever memory order + constants are required, and partially retains use of the inline + constants supplied for back compatibility. + + This patch conistently uses the memory_order::enumerators, retaining + the old name only for their declaration, the index, and for Annex C + wording on C++17 compatibility, which /should/ use the old spelling. + + commit f61e49e572f53e91ff6ffee2842dc8cfcd32f9d3 + Author: timsong-cpp + Date: Wed Mar 11 18:43:11 2020 +0100 + + [support.types.byteops] Fix misapplication of LWG2950 (#3863) + + commit 7d54b05c80c0907e97a3b49bd905f91ed3d8a186 + Author: timsong-cpp + Date: Tue Mar 10 23:46:14 2020 -0500 + + [module.unit] module-declarations no longer contain \tcode{export} + + commit 14eb15322b7b2ef1be249d6ce7ce447123504237 + Author: Jens Maurer + Date: Tue Mar 10 22:23:35 2020 +0100 + + [range.access] Introduce 'reified object' to simplify the descriptions. + + commit 65158c0bdc7705f41f0dbcc102dd456cba6ad496 + Author: Jens Maurer + Date: Mon Mar 9 08:47:31 2020 +0100 + + [class.mfct] consteval member functions are also inline. + + commit f471be1e24be13549e375af62e05b2b22ff17e12 + Author: Jens Maurer + Date: Wed Mar 11 22:45:27 2020 +0100 + + [depr.atomics] Use enum class memory_order + + commit 9c30324fc1347757075f2631eb3a99df6c916560 + Author: Jens Maurer + Date: Thu Mar 12 02:11:37 2020 +0100 + + [lex.ccon,lex.string] Remove redundant repetition of the grammar. + + Also use the grammar non-terminals character-literal and + string-literal throughout the standard. + + commit 74a9547bf3910d68f5c8a07a5625444d58354ee2 + Author: timsong-cpp + Date: Wed Mar 11 19:37:03 2020 -0500 + + [support.types.byteops] remove redundant static_cast to unsigned char + + These casts are redundant after CWG2338. + + commit 85121a254c5f013af41a305ad008586a595b208e + Author: Casey Carter + Date: Tue Feb 18 21:41:23 2020 -0800 + + [ranges] Correct outer template-heads to match primary template constraints + + commit ac3fceec6107d67ed69535583ad83e35da9de218 + Author: Casey Carter + Date: Tue Feb 18 21:47:29 2020 -0800 + + [range.elements.view] Add cross-reference to elements_view::iterator + + commit b83f0203f473289f2252c0c5489f7226c1abdeb4 + Author: Alisdair Meredith + Date: Thu Mar 12 17:15:52 2020 -0400 + + [support.dynamic] Improve cross-referencing for dynamic memory subclauses + + Update several cross-references to subclause 17.6 with more precise + references to subclauses nested one level deeper. For the synopsis + of the header, added a couple of banner comments with cross-references + too. + + commit 3139172b410bd975d29e3074c137542ce2b64467 + Author: Krystian Stasiowski + Date: Fri Mar 6 14:52:18 2020 -0500 + + [basic], [expr] Fix incorrect cross-references to [conv.ptr] for null pointer values + + commit 56c88a59e31413f94203e6a4f5dc961e84dd79de + Author: Daveed Vandevoorde + Date: Thu Mar 12 17:45:52 2020 -0400 + + [expr.const] Add article to bullet start, to parallel the other bullets. + + commit 61763ed574e73949323008b8c8479c793408ea06 + Author: Jens Maurer + Date: Thu Mar 12 23:06:46 2020 +0100 + + [allocator.requirements] Fix punctuation in tables. + + commit 31a1a94d409ceb0c699849af807364142bcd8026 + Author: Casey Carter + Date: Fri Feb 21 11:05:40 2020 -0800 + + [alg.clamp] Reword for clarity + + Define `comp` and `proj` for the overloads with no such parameters and spell out the meaning of the handwavy "is no greater than" and "is less than". + + commit b7c0d7130f6a28e42f5f7252248ec29b7fee17fa + Author: Jonathan Wakely + Date: Fri Feb 21 12:13:22 2020 +0000 + + [ostream] Fix poor grammar to be consistent with [istream] + + Also fix grammar in [istream], [istream.extractors] and + [ostream.inserters] to refer to "*the* error state", and use "is set in" + when talking about a bitmask element being set in a value of a bitmask + type. + + Fixes #3333 + + commit 948775f73bfc51fec14d6b6fb200a88d199c6f1a + Author: Johel Ernesto Guerrero Peña + Date: Mon Dec 30 18:20:11 2019 -0400 + + [range.req.general, range.sized] Fix and improve description + + commit b6d9e27e75b10cfb0a5f0a99343cce3697042c21 + Author: JF Bastien + Date: Thu Mar 12 17:39:44 2020 -0700 + + [depr.volatile] Add examples of deprecated constructs + + commit 1866b054b98ad872fd50a017a99502398f8cc96a + Author: Richard Smith + Date: Fri Mar 13 17:13:23 2020 -0700 + + [diff] Reverse order of subclauses and add "in addition to those listed + above" to each introductory sentence after the first. + + Fixes #537. + + commit b2e7b06b5855bc43d92bde86c0fd716f4a847b22 + Author: Thomas Köppe + Date: Tue Mar 17 01:25:07 2020 +0000 + + [depr.strstreambuf] Remove extraneous parenthesis and excessive linebreaks + + commit 6c6e08479d7f83b33134e8d52049fddc120d25bb + Author: Jens Maurer + Date: Thu Mar 12 22:46:22 2020 +0100 + + [alg.replace] Clarify which value gets assigned depending on E. + + commit 25f6538adb1b2a9cfaca257137befa8aabcf879f + Author: Davis Herring + Date: Mon Mar 16 23:55:18 2020 -0600 + + [tuple.cnstr] Remove (redundant) && per P1460R1 + + commit cc4b3a7aca374d76ec11b870a353bd47ce53d803 + Author: Davis Herring + Date: Tue Mar 17 00:06:50 2020 -0600 + + [bitset.cons] Remove () per P1460R1 + + commit d34fb9a542c3a9873e49e53a8a86eccfdd336109 + Author: Casey Carter + Date: Tue Mar 17 15:41:38 2020 -0700 + + [version.syn] Fix mis-ordering of __cpp_lib_{bind_front, bit_cast} + + commit 0391d1f1ffe3fab1e6052b9c61ddefae13083637 + Author: Davis Herring + Date: Mon Mar 2 14:51:57 2020 -0700 + + [temp.inst] Make note more precisely describe when function (template) constraints are checked. + + commit aa92bdb2b29af48820f0e0a45c85e4533fd5ed01 + Author: Davis Herring + Date: Mon Mar 2 16:25:59 2020 -0700 + + [lex.pptoken] Fix note grammar + + commit 1c20e8179aba5bbb61c4644ab840677deff470fa + Author: Davis Herring + Date: Mon Mar 2 18:00:34 2020 -0700 + + [diff.cpp17.lex] Harmonize example comments + + commit 906dacd0b6424689537abb7349fdad0c83d1c62c + Author: Davis Herring + Date: Fri Mar 13 17:56:23 2020 -0600 + + [temp.func.order] Clarify that optional parameters count + + Move note to avoid confusion + + commit fad3cd32b97f61cc5d1e1a7e49fac4eaeacf5c89 + Author: Davis Herring + Date: Mon Mar 16 12:47:28 2020 -0600 + + [module.private.frag] Add missing inline cross reference + + commit 36ac6c50b197b5d1c1fea8d0a2faf15f07bbfab2 + Author: Davis Herring + Date: Mon Mar 16 13:55:16 2020 -0600 + + [class.compare.default] Trim pedagogical <=>/== note + + commit 1208fce3fa53ce9107068b6ef9c57c9f65532037 + Author: Richard Smith + Date: Tue Mar 17 17:08:45 2020 -0700 + + [cpp.pre] Simplify global module fragment restriction + + commit 8bc2a1a4bb38b4f0e9de09bd0ac3d6d0565a1f79 + Author: Davis Herring + Date: Mon Mar 2 17:47:07 2020 -0700 + + [cpp.pre] Simplify macro restrictions + + commit 263597b8755d815fcfc894cde8047be72d7d0b1b + Author: Davis Herring + Date: Mon Mar 2 18:11:47 2020 -0700 + + [intro.object] Avoid implying multiple sets of implicit objects + + commit 515da67958cf95d803f8b8a117dbb16c5bc152f2 + Author: Davis Herring + Date: Fri Mar 13 14:00:32 2020 -0600 + + [temp.over.link] Clarify type-constraint equivalence requirement + + commit 49cb1f0e5c769ad1589555b0a79f8e3cb576a575 + Author: Davis Herring + Date: Fri Mar 13 14:10:25 2020 -0600 + + [temp.func.order] Use English for deducible template parameters + + commit 7f7eecb699b304ae6f67b290554ef253e0048869 + Author: Davis Herring + Date: Fri Mar 13 17:59:45 2020 -0600 + + [basic.def.odr] Remove vestigial comma + + commit 604f0962c027b52aff0edbfae2cbcf43a52863cc + Author: Davis Herring + Date: Fri Mar 13 18:01:06 2020 -0600 + + [basic.def.odr] Clarify cohorts of unnamed enum definitions + + commit cb6658e192e99038bb6138f959f311e96203835f + Author: Davis Herring + Date: Fri Mar 13 18:10:53 2020 -0600 + + [basic.def.odr] Remove redundant "of D" + + commit 656b9ec8ba52b6c926d5ceffa186b93317307669 + Author: Davis Herring + Date: Mon Mar 16 13:02:26 2020 -0600 + + [temp.variadic] A capture has only one relevant ellipsis + + commit 7b96c0ecd0542ac5a53ac63c52e6d75bdbdee83f + Author: Davis Herring + Date: Mon Mar 16 14:39:49 2020 -0600 + + [dcl.attr.grammar] Fix parallelism + + commit a6f9f98a4270b79da91de633a0dfcd919c3bb587 + Author: Davis Herring + Date: Mon Mar 16 14:40:31 2020 -0600 + + [dcl.attr.grammar] Simplify std:: for attributes + + commit 33cdcf1ff118c6dc5513bf48e351f5ee723eca48 + Author: Davis Herring + Date: Tue Mar 24 12:32:13 2020 -0600 + + [module.import] Clarify interface dependency definition + + commit 81eaf24933acff460376d40602dbfa33af1131f8 + Author: Davis Herring + Date: Fri Mar 20 10:21:33 2020 -0600 + + [lib] Fix ;s in itemdecls + + One was missed from P1983R0 + + commit 7feffc4cfde21241a4734c5d9cf554a2d14b7fe2 + Author: Davis Herring + Date: Tue Mar 24 08:51:16 2020 -0600 + + [concepts.equality] Fix grammar for P2102R0 + + commit 10f2bf5f7c1c222d41fb57085f7ddf0e0362d835 + Author: Davis Herring + Date: Tue Mar 24 11:24:58 2020 -0600 + + [stmt.expr] Fix cross reference + + commit a48408f12ad8d25fa99214748853ddcbba299634 + Author: Davis Herring + Date: Tue Mar 24 14:47:15 2020 -0600 + + [concept.booleantestable] Use tie before cross references + + commit 4b34a8a2e32268de7aba8f091af1282e45b8744f + Author: Davis Herring + Date: Tue Mar 24 14:47:22 2020 -0600 + + [concept.booleantestable] Provide value category to deduction + + commit db4208f1ebdad13b99ad1a8b34f051d0fa92039e + Author: Davis Herring + Date: Wed Mar 25 22:19:37 2020 -0600 + + [module.reach] Remove impossible private-module-fragment case + + commit 30f37e0027b06a233b4d572ed3c8d577a3a11a7d + Author: Richard Smith + Date: Thu Mar 26 17:47:07 2020 -0700 + + [intro.object] Fix hyphenation. + + commit 69d331ff4d7ba651da8b1f998f74fedaca0c9aa4 + Author: Richard Smith + Date: Thu Mar 26 17:47:33 2020 -0700 + + [temp.func.order] Fix hyphenation. + + commit 5e01d592a2276bd48c16bf199b8f3c38f57e41a9 + Author: Richard Smith + Date: Thu Mar 26 17:47:48 2020 -0700 + + [temp.variadic] Make xref more precise. + + commit 2fa3e8c8cea3ab90e04f459568b06f91ebd5b233 + Author: Richard Smith + Date: Thu Mar 26 19:27:37 2020 -0700 + + [expr.prim.literal] Rephrase slightly to avoid 'which' sounding + restrictive. + + commit 4f2f5811d4d4f45679e0a09e2cf105f9535db8c6 + Author: Richard Smith + Date: Thu Mar 26 19:32:25 2020 -0700 + + [class.copy.elision] Make wording more parallel by removing redundant wording. + + commit 224ad02b418f104ddebdc41c3267fddfbe2c4542 + Author: Richard Smith + Date: Tue Mar 31 11:52:37 2020 -0700 + + [time.zone.db.tzdb] Say where we look for time_zones, and avoid + readability problem with 'If a time_zone tz is found' phrasing. + + Fixes #3892.