# 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)  
`<cxxeditor@gmail.com>`

## 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<void>().allocate(n)`
 * [3310](http://wg21.link/lwg3310) Replace `SIZE_MAX` with `numeric_limits<size_t>::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 `<compare>` 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 `<compare>` 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<size_t>::max()`
 * NB JP 219: Replace `SIZE_MAX` with `numeric_limits<size_t>::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<Duration2, TimeZonePtr2>`
 * [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<T, U>` 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) `<chrono>` 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<V>` unintentionally requires `range<const V>`
 * [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<V>::iterator<true>` 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<bool>` instead
 * NB US 196: Simplify concept *`boolean`*
 * NB GB 197: Remove concept *`boolean`* and use `convertible_to<bool>` 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<int, 42>>` 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 <Casey@Carter.net>
    Date:   Wed Jan 15 08:27:29 2020 -0800
    
        [span.overview] Correct typo (#3633)
        
        Fixes #3632.
    
    commit 1c0171894b791258539854d98fa5b157b8d6822b
    Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
    Date:   Wed Jan 22 07:48:32 2020 -0400
    
        [optional.optional, optional.ctor] Fix constexpr/explicit position (#3644)
    
    commit d29ae50e1d39d56e54e142b13737d627709d39dc
    Author: Casey Carter <Casey@Carter.net>
    Date:   Wed Jan 22 08:19:13 2020 -0800
    
        [expr.prim.req.nested] Add missing semicolon to example
    
    commit 9b6c64fabdb05432ecdd238900ca03ee63c33cf1
    Author: Andrzej Krzemieński <akrzemi1@gmail.com>
    Date:   Fri Jan 24 00:30:17 2020 +0100
    
        [temp.constr.op] Fix missing parentheses in example (#3643)
    
    commit 22a182262f25f9fe79d8ff7a4e1d1460002bf9cd
    Author: Casey Carter <Casey@Carter.net>
    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 <Casey@Carter.net>
    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 <Casey@Carter.net>
    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<meow>` instead of `make-unsigned-like-t(meow)`.
    
    commit 90ded44703e48b32401fc766337d3e0bf0a8eaca
    Author: Casey Carter <Casey@Carter.net>
    Date:   Mon Oct 21 12:29:09 2019 -0700
    
        [ranges.syn] to-unsigned-like operates on expressions, not objects
    
    commit 85e5aeb00ae69803a3ff10f96387d151af654f9c
    Author: Daveed Vandevoorde <daveed@vandevoorde.com>
    Date:   Tue Jan 28 14:35:02 2020 -0500
    
        [temp.constr.normal] Remove extraneous parentheses on concept use (#3651)
    
    commit 61952121cc594d4d290bfb17b0ea95d50c6ed534
    Author: Daveed Vandevoorde <daveed@vandevoorde.com>
    Date:   Wed Jan 29 16:34:44 2020 -0500
    
        [temp.constr.normal] Confusing identifier used in explanation (#3652)
    
    commit 694d84cae2e5496f59102f3eb7f386925be199dd
    Author: pppalka <ppalka007@gmail.com>
    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 <ppalka007@gmail.com>
    Date:   Wed Feb 5 17:27:51 2020 -0500
    
        [range.join.sentinel], [range.split.view] Fix typos (#3656)
    
    commit 634695586ebe9060f20a4b104aaefd9db9237f75
    Author: Thomas Köppe <tkoeppe@google.com>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    Date:   Mon Feb 10 23:19:00 2020 +0100
    
        Update value of __cplusplus to 202002L
    
    commit 977961d675f77c0874b10a3f834984e7576cacfb
    Author: Thomas Köppe <tkoeppe@google.com>
    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 <tkoeppe@google.com>
    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 <tkoeppe@google.com>
    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 <functional> and removes a paragraph that says
        (now redundantly) that the class is available also via inclusion of
        <functional>.
        
        This is a partial response to NB GB 175 (C++20 CD).
    
    commit 43876c3008180b7e6b398bc0320baf7d06ac9d7f
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Mon Jan 13 20:46:47 2020 +0100
    
        [dcl.attr] Introduce 'Recommended practice' paragraphs.
    
    commit 78de92453c9c58450ac0574529ad9a4673786124
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Sun Feb 23 15:19:09 2020 +0100
    
        [temp.func.order] Add bullets to clarify long sentence.
    
    commit 887d0f58a6a2f15617084bac462d730a23001571
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <dperchik@embarcadero.com>
    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 <dperchik@embarcadero.com>
    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 <Jens.Maurer@gmx.net>
    Date:   Mon Feb 24 07:54:11 2020 +0100
    
        [algorithms.requirements] Fix non-sensical English for NoThrowForwardIterator
    
    commit 2eec680c4bfde4ec961041a71f5de95c59c8a4e8
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Wed Feb 26 00:34:24 2020 +0100
    
        [uninitialized.move,uninitialized.copy] Use \countedrange where applicable.
    
    commit 14fd38fd5ed2cfebe608b2ed2c7d1f00d88a9baf
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <dperchik@embarcadero.com>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <dperchik@embarcadero.com>
    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 <dperchik@embarcadero.com>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    Date:   Tue Mar 3 12:56:49 2020 -0800
    
        [atomics.types.float] Remove meaningless A:: qualification.
    
    commit f3825d77e61b7140c2fbd9b8ef3e11b3bda35e46
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <dperchik@embarcadero.com>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    Date:   Tue Feb 25 14:27:54 2020 -0800
    
        [cpp.pre] Rearrange grammar into topological order.
    
    commit 3405cbec344e2be32ff80816d24bcad48e3f29e6
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    Date:   Wed Mar 4 13:41:48 2020 -0800
    
        [util.smartptr.atomic] Add example from Matthew Butler.
    
    commit e15a52a4ab45ceed8ce5731558df1c84a4e47c7f
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <Jens.Maurer@gmx.net>
    Date:   Fri Jan 17 21:01:27 2020 +0100
    
        [except.spec] Avoid reference to undeclared identifier in example.
    
    commit 3e9bb331467a32e757e218391f28f1190b80607b
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <tkoeppe@google.com>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 `<stdint.h>`. Removing rather than fixing since the list is of questionable value and would be likely to become stale again.
    
    commit 86d9ba406195fd8e0b0fb72723c5258b6cd422f1
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Wed Feb 5 02:15:42 2020 -0500
    
        [basic.types] Change "(possibly cv-qualified)  void" to cv void
    
    commit 6de55fc7095bedb3aa9bc1f381767c5a6646eb1d
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    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 <sdkrystian@gmail.com>
    Date:   Wed Feb 5 02:41:47 2020 -0500
    
        [dcl.init.list] Change "possibly cv-qualified" to cv
    
    commit 4570e3aacba6cff4add7f9acea652504b1604f2a
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Wed Feb 5 03:36:22 2020 -0500
    
        [class.copy.ctor] Change "optionally cv-qualified" to cv
    
    commit a9a1e5faa0b805ea8ce8a961789caad5b5c3bb0e
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Wed Feb 5 03:37:44 2020 -0500
    
        [dcl.init] Remove unused definition of a variable
    
    commit f611368d43b76cb0054c22cbe8cb987a18314e08
    Author: Krystian Stasiowski <sdkrystian@gmail.com>
    Date:   Thu Feb 6 15:08:29 2020 -0500
    
        [temp.param] Change "optionally cv-qualified" to "possibly cv-qualified"
    
    commit d1d7769ab58636200e47f1365c61bbde85d8e287
    Author: Alisdair Meredith <alisdairm@me.com>
    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<T>' and so no longer applies to pointers to
        function, or to void.
    
    commit 1fda54c697dedd973459f67a552b79fd74dd47cb
    Author: Casey Carter <Casey@Carter.net>
    Date:   Sat Feb 15 14:56:12 2020 +0100
    
        [functional.syn] Correct text in cross-reference comment
    
    commit af6e2d4da60d27cd230f321652868bf118deb001
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Sat Feb 22 09:31:04 2020 +0100
    
        [concept.swappable,iterator.cust] Fix phrasing 'with no diagnostic required'
    
    commit 51364a8a7fed97dae305b5264b5204429ac71f6a
    Author: Davis Herring <herring@lanl.gov>
    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 <herring@lanl.gov>
    Date:   Fri Nov 1 17:45:15 2019 -0600
    
        [class] Remove misleading [expr.ass] reference
    
    commit 6db1c3cbb9f056ad6b41a3f3e44bdeddaa526063
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Feb 25 14:52:59 2020 -0700
    
        [rand.util.canonical] Remove self-cross-reference
    
    commit 1f1c6eac3efc314be2f2a91c15d84f197a3f818a
    Author: Dan Raviv <dan.raviv@gmail.com>
    Date:   Tue Feb 11 14:38:30 2020 +0100
    
        [basic.pre] Improve consistency in list
    
    commit 63da1a59b0f932bee3f0a5b60286f97bd0c51f02
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Wed Mar 4 15:59:19 2020 -0800
    
        [rand.util.canonical] Convert normative duplication into a note.
    
    commit 344e9d2180f03eb667fa2cbe6127b82f13017b42
    Author: Frank Birbacher <frank.birbacher@gmail.com>
    Date:   Fri Feb 14 20:55:30 2020 +0100
    
        [stmt.return.coroutine] Use notion of "enclosing" for "return"
    
    commit 9cdb5763c5449bc1f94cfee6a75cff820060d3d5
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Thu Mar 5 21:25:03 2020 +0100
    
        [temp.explicit] Add missing comma (#3822)
    
    commit 12620243dea3c4dd6881f9a1eab39a776b20727a
    Author: Casey Carter <Casey@Carter.net>
    Date:   Fri Mar 6 09:58:51 2020 -0800
    
        [range.prim.cdata] Properly qualify ranges::cdata (#3793)
    
    commit 417053a6c695e69dc8b2be3ba690ae3e5eff0964
    Author: Casey Carter <Casey@Carter.net>
    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 <Jens.Maurer@gmx.net>
    Date:   Sat Jan 11 11:58:25 2020 +0100
    
        [over.oper] Clarify handling of individual operators.
    
    commit 9a408b17e1f20dad977b83deffe041f3d83b91b5
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    Date:   Thu Jan 16 23:30:59 2020 +0100
    
        [over.literal] Move out of [over.oper].
    
    commit 00b66a1b8bd9389811ab81d0528ad09ad1960455
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    Date:   Wed Feb 19 17:58:34 2020 -0800
    
        [diff] Consistently format name of prior standards.
    
    commit df2f32725d6481b900e0b0f32fca51fceeb7ecfd
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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 <johelegp@gmail.com>
    Date:   Thu Feb 27 19:01:45 2020 -0400
    
        [any.synop,any.class,any.nonmembers] Format pack conventionally
    
    commit 98e736fac115efe282d635ab2b793cb89998c55a
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    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 <Kerdek@users.noreply.github.com>
    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 <johelegp@gmail.com>
    Date:   Wed Feb 26 22:11:30 2020 -0400
    
        [allocator.members] Replace SIZE_MAX with numeric_limits<size_t>::max()
    
    commit 052b91a8e145bb5e01ae9b6bd307fb490c201cef
    Author: Hubert Tong <hstong@ca.ibm.com>
    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 <alisdairm@me.com>
    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 <sdkrystian@gmail.com>
    Date:   Mon Feb 17 21:03:16 2020 -0500
    
        [basic.type.qualifier] Remove redundant wording
    
    commit e3fa5b5d10decc7b99ca37cc05dcddb2dee845a5
    Author: timsong-cpp <rs2740@gmail.com>
    Date:   Sat Mar 7 22:05:38 2020 +0100
    
        [concept.constructible] is-default-initializable is not a concept (#3834)
    
    commit 34fcf8b77d33940ae564384ccb9264a6a52589c9
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Sun Mar 8 22:41:22 2020 +0100
    
        [module.interface] Fix typo. (#3840)
    
    commit 645a1e4ff7d1ef1ad3ce527e758f9a350b1b6702
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Mon Mar 9 08:49:30 2020 +0100
    
        [algorithms.general] Add [specialized.algorithms] to summary table. (#3838)
    
    commit 188de05527a9ea59ad7cf4f3a294a8356a4400f3
    Author: timsong-cpp <rs2740@gmail.com>
    Date:   Tue Mar 10 08:30:41 2020 +0100
    
        [time.zone.zonedtime.overview] Fix typo (#3846)
    
    commit bcfa94647bf461766ba76fc4513aa75f4dc36394
    Author: Jonathan Wakely <cxx@kayari.org>
    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 <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    Date:   Tue Mar 10 22:50:28 2020 +0100
    
        [basic,support] Correctly use 'startup' and 'start of program'
    
    commit 146c98453bf6292186a9020f0598ae03e050aae3
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Tue Mar 10 22:38:58 2020 +0100
    
        [support] Renamed from [language.support].
    
    commit 6025a8825ee068093064919274a1286a3ceb8df1
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Tue Mar 10 21:55:16 2020 +0100
    
        [depr.conversions] Rename snake_case template parameters to CamelCase.
    
    commit c5be3ccf5cd5635ba3847acce70de64bf72a9ae9
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Sun Mar 8 22:43:03 2020 +0100
    
        [over.oper] Make statement about non-overloadable operators a note.
    
    commit 4f0377b81e2b470d2d141c3ab6758957a74b21fa
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    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 <Jens.Maurer@gmx.net>
    Date:   Tue Mar 10 21:33:52 2020 +0100
    
        [contents] Some standard library functions are not defined.
    
    commit 52e653f6211326beeceb2e68bda8a12abcb9e062
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <sdkrystian@gmail.com>
    Date:   Sun Mar 8 18:39:15 2020 -0400
    
        [class] [over] Redundant specification of ignoring move special members
    
    commit 37deb529b19609e2494626af5d8bdf25f3833ab3
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Sun Mar 8 22:16:48 2020 +0100
    
        [module.interface] Remove redundant bullet for exported declaration.
    
    commit aaf725a9363213124afd7edf7494b88ac77728e6
    Author: Alisdair Meredith <alisdairm@me.com>
    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 <rs2740@gmail.com>
    Date:   Wed Mar 11 18:43:11 2020 +0100
    
        [support.types.byteops] Fix misapplication of LWG2950 (#3863)
    
    commit 7d54b05c80c0907e97a3b49bd905f91ed3d8a186
    Author: timsong-cpp <rs2740@gmail.com>
    Date:   Tue Mar 10 23:46:14 2020 -0500
    
        [module.unit] module-declarations no longer contain \tcode{export}
    
    commit 14eb15322b7b2ef1be249d6ce7ce447123504237
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Tue Mar 10 22:23:35 2020 +0100
    
        [range.access] Introduce 'reified object' to simplify the descriptions.
    
    commit 65158c0bdc7705f41f0dbcc102dd456cba6ad496
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Mon Mar 9 08:47:31 2020 +0100
    
        [class.mfct] consteval member functions are also inline.
    
    commit f471be1e24be13549e375af62e05b2b22ff17e12
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Wed Mar 11 22:45:27 2020 +0100
    
        [depr.atomics] Use enum class memory_order
    
    commit 9c30324fc1347757075f2631eb3a99df6c916560
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    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 <rs2740@gmail.com>
    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 <Casey@Carter.net>
    Date:   Tue Feb 18 21:41:23 2020 -0800
    
        [ranges] Correct outer template-heads to match primary template constraints
    
    commit ac3fceec6107d67ed69535583ad83e35da9de218
    Author: Casey Carter <Casey@Carter.net>
    Date:   Tue Feb 18 21:47:29 2020 -0800
    
        [range.elements.view] Add cross-reference to elements_view::iterator
    
    commit b83f0203f473289f2252c0c5489f7226c1abdeb4
    Author: Alisdair Meredith <alisdairm@me.com>
    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 <sdkrystian@gmail.com>
    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 <daveed@vandevoorde.com>
    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 <Jens.Maurer@gmx.net>
    Date:   Thu Mar 12 23:06:46 2020 +0100
    
        [allocator.requirements] Fix punctuation in tables.
    
    commit 31a1a94d409ceb0c699849af807364142bcd8026
    Author: Casey Carter <Casey@Carter.net>
    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 <cxx@kayari.org>
    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 <johelegp@gmail.com>
    Date:   Mon Dec 30 18:20:11 2019 -0400
    
        [range.req.general, range.sized] Fix and improve description
    
    commit b6d9e27e75b10cfb0a5f0a99343cce3697042c21
    Author: JF Bastien <jfbastien@apple.com>
    Date:   Thu Mar 12 17:39:44 2020 -0700
    
        [depr.volatile] Add examples of deprecated constructs
    
    commit 1866b054b98ad872fd50a017a99502398f8cc96a
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <tkoeppe@google.com>
    Date:   Tue Mar 17 01:25:07 2020 +0000
    
        [depr.strstreambuf] Remove extraneous parenthesis and excessive linebreaks
    
    commit 6c6e08479d7f83b33134e8d52049fddc120d25bb
    Author: Jens Maurer <Jens.Maurer@gmx.net>
    Date:   Thu Mar 12 22:46:22 2020 +0100
    
        [alg.replace] Clarify which value gets assigned depending on E.
    
    commit 25f6538adb1b2a9cfaca257137befa8aabcf879f
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 16 23:55:18 2020 -0600
    
        [tuple.cnstr] Remove (redundant) && per P1460R1
    
    commit cc4b3a7aca374d76ec11b870a353bd47ce53d803
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 17 00:06:50 2020 -0600
    
        [bitset.cons] Remove () per P1460R1
    
    commit d34fb9a542c3a9873e49e53a8a86eccfdd336109
    Author: Casey Carter <Casey@Carter.net>
    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 <herring@lanl.gov>
    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 <herring@lanl.gov>
    Date:   Mon Mar 2 16:25:59 2020 -0700
    
        [lex.pptoken] Fix note grammar
    
    commit 1c20e8179aba5bbb61c4644ab840677deff470fa
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 2 18:00:34 2020 -0700
    
        [diff.cpp17.lex] Harmonize example comments
    
    commit 906dacd0b6424689537abb7349fdad0c83d1c62c
    Author: Davis Herring <herring@lanl.gov>
    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 <herring@lanl.gov>
    Date:   Mon Mar 16 12:47:28 2020 -0600
    
        [module.private.frag] Add missing inline cross reference
    
    commit 36ac6c50b197b5d1c1fea8d0a2faf15f07bbfab2
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 16 13:55:16 2020 -0600
    
        [class.compare.default] Trim pedagogical <=>/== note
    
    commit 1208fce3fa53ce9107068b6ef9c57c9f65532037
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Tue Mar 17 17:08:45 2020 -0700
    
        [cpp.pre] Simplify global module fragment restriction
    
    commit 8bc2a1a4bb38b4f0e9de09bd0ac3d6d0565a1f79
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 2 17:47:07 2020 -0700
    
        [cpp.pre] Simplify macro restrictions
    
    commit 263597b8755d815fcfc894cde8047be72d7d0b1b
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 2 18:11:47 2020 -0700
    
        [intro.object] Avoid implying multiple sets of implicit objects
    
    commit 515da67958cf95d803f8b8a117dbb16c5bc152f2
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 13 14:00:32 2020 -0600
    
        [temp.over.link] Clarify type-constraint equivalence requirement
    
    commit 49cb1f0e5c769ad1589555b0a79f8e3cb576a575
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 13 14:10:25 2020 -0600
    
        [temp.func.order] Use English for deducible template parameters
    
    commit 7f7eecb699b304ae6f67b290554ef253e0048869
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 13 17:59:45 2020 -0600
    
        [basic.def.odr] Remove vestigial comma
    
    commit 604f0962c027b52aff0edbfae2cbcf43a52863cc
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 13 18:01:06 2020 -0600
    
        [basic.def.odr] Clarify cohorts of unnamed enum definitions
    
    commit cb6658e192e99038bb6138f959f311e96203835f
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 13 18:10:53 2020 -0600
    
        [basic.def.odr] Remove redundant "of D"
    
    commit 656b9ec8ba52b6c926d5ceffa186b93317307669
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 16 13:02:26 2020 -0600
    
        [temp.variadic] A capture has only one relevant ellipsis
    
    commit 7b96c0ecd0542ac5a53ac63c52e6d75bdbdee83f
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 16 14:39:49 2020 -0600
    
        [dcl.attr.grammar] Fix parallelism
    
    commit a6f9f98a4270b79da91de633a0dfcd919c3bb587
    Author: Davis Herring <herring@lanl.gov>
    Date:   Mon Mar 16 14:40:31 2020 -0600
    
        [dcl.attr.grammar] Simplify std:: for attributes
    
    commit 33cdcf1ff118c6dc5513bf48e351f5ee723eca48
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 24 12:32:13 2020 -0600
    
        [module.import] Clarify interface dependency definition
    
    commit 81eaf24933acff460376d40602dbfa33af1131f8
    Author: Davis Herring <herring@lanl.gov>
    Date:   Fri Mar 20 10:21:33 2020 -0600
    
        [lib] Fix ;s in itemdecls
        
        One was missed from P1983R0
    
    commit 7feffc4cfde21241a4734c5d9cf554a2d14b7fe2
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 24 08:51:16 2020 -0600
    
        [concepts.equality] Fix grammar for P2102R0
    
    commit 10f2bf5f7c1c222d41fb57085f7ddf0e0362d835
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 24 11:24:58 2020 -0600
    
        [stmt.expr] Fix cross reference
    
    commit a48408f12ad8d25fa99214748853ddcbba299634
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 24 14:47:15 2020 -0600
    
        [concept.booleantestable] Use tie before cross references
    
    commit 4b34a8a2e32268de7aba8f091af1282e45b8744f
    Author: Davis Herring <herring@lanl.gov>
    Date:   Tue Mar 24 14:47:22 2020 -0600
    
        [concept.booleantestable] Provide value category to deduction
    
    commit db4208f1ebdad13b99ad1a8b34f051d0fa92039e
    Author: Davis Herring <herring@lanl.gov>
    Date:   Wed Mar 25 22:19:37 2020 -0600
    
        [module.reach] Remove impossible private-module-fragment case
    
    commit 30f37e0027b06a233b4d572ed3c8d577a3a11a7d
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Thu Mar 26 17:47:07 2020 -0700
    
        [intro.object] Fix hyphenation.
    
    commit 69d331ff4d7ba651da8b1f998f74fedaca0c9aa4
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Thu Mar 26 17:47:33 2020 -0700
    
        [temp.func.order] Fix hyphenation.
    
    commit 5e01d592a2276bd48c16bf199b8f3c38f57e41a9
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Thu Mar 26 17:47:48 2020 -0700
    
        [temp.variadic] Make xref more precise.
    
    commit 2fa3e8c8cea3ab90e04f459568b06f91ebd5b233
    Author: Richard Smith <richard@metafoo.co.uk>
    Date:   Thu Mar 26 19:27:37 2020 -0700
    
        [expr.prim.literal] Rephrase slightly to avoid 'which' sounding
        restrictive.
    
    commit 4f2f5811d4d4f45679e0a09e2cf105f9535db8c6
    Author: Richard Smith <richard@metafoo.co.uk>
    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 <richard@metafoo.co.uk>
    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.
