N4843 Editors' Report -- Programming Languages -- C++

2019-11-27
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, Jeff Garland, and Daniel Sunderland 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.

Thanks to all those who have submitted editorial issues and to those who have provided pull requests with fixes.

New papers

Motions incorporated into working draft

Core working group motions

CWG motion 1: Core issue resolutions for 4 issues in "ready" status applied: (DR)

CWG motion 2: Core issue resolutions for 18 issues in "tentatively ready" status applied, resolving 19 issues: (DR)

CWG motion 3: Core NB comment resolutions, resolving 17 NB comments:

CWG motion 4: P1972R0 "US105 Check satisfaction of constraints for non-templates when forming pointer to function", resolving 1 NB comment:

CWG motion 5: P1975R0 "Fixing the wording of parenthesized aggregate-initialization"

CWG motion 6: P1874R1 "Dynamic initialization order of non-local variables in modules", resolving 1 NB comment:

CWG motion 7: P1946R0 "Allow defaulting comparisons by value"

CWG motion 8: P1907R1 "Inconsistencies with non-type template parameters", resolving 5 NB comments: with changes; see below

CWG motion 9: P1979R0 "Resolution to US086", resolving 1 NB comment:

CWG motion 10: P1980R0 "Declaration matching for non-dependent requires-clauses", resolving 2 NB comments:

Library working group motions

Issues

LWG motion 1: Library issue resolutions for 27 issues in "Ready" and "Tentatively Ready" status, resolving 3 NB comments:

Papers

LWG motion 2: P1855R0 "Make <compare> freestanding", resolving 6 NB comments: * NB RU 009: Make <compare> a freestanding header * NB FI 010: Make <compare> a freestanding header * NB US 158: Ensure <coroutine> can be used as a freestanding header despite including <compare> * NB US 159: Make <compare> a freestanding header * NB GB 160: Make <compare> a freestanding header * NB PL 161: Make <compare> a freestanding header

LWG motion 3: P1690R1 "Refinement proposal for P0919 heterogeneous lookup for unordered containers", resolving 4 NB comments:

LWG motion 4: P1872R0 "span should have size_type, not index_type", resolving 3 NB comments:

LWG motion 5: P1965R0 "Hidden friends", resolving 1 LWG issue and 1 NB comment:

LWG motion 6: P1716R3 "ranges comparison algorithms are over-constrained", resolving 4 NB comments:

LWG motion 7: P1869R1 "Rename condition_variable_any interruptible wait methods", resolving 1 NB comment:

LWG motion 8: P1961R0 "Harmonizing the definitions of total order for pointers", resolving 2 NB comments:

LWG motion 9: P1878R1 "Constraining readable types", resolving 1 LWG issue and 3 NB comments:

LWG motion 10: P1871R1 "Concept traits should be named after concepts", resolving 1 NB comment:

LWG motion 11: P1456R1 "Move-only views", resolving 2 NB comments: with changes; see below

LWG motion 12: P1391R4 "Range constructor for std::string_view", resolving 1 NB comment:

LWG motion 13: P1394R4 "Range constructor for std::span", resolving 3 NB comments:

LWG motion 14 was withdrawn.

LWG motion 15: P1862R1 "Ranges adaptors for non-copyable iterators"

LWG motions 11 and 15 together resolve 1 NB comment:

LWG motions 11-15 together resolve 2 NB comments:

LWG motion 16: P1870R1 "forwarding-range<T> is too subtle", resolving 2 NB comments: with changes; see below

LWG motion 17: P1865R1 "Add max() to latch and barrier", resolving 1 NB comment:

LWG motion 18: P1960R0 "NB comment changes reviewed by SG1", resolving 5 NB comments:

LWG motion 19: P1902R1 "Missing feature-test macros 2017-2019", resolving 6 NB comments: with changes; see below

LWG motion 20: P0883R2 "Fixing atomic initialization", resolving 1 LWG issue and 4 NB comments:

LWG motion 21: P1959R0 "Remove std::weak_equality and std::strong_equality", resolving 2 NB comments:

LWG motion 22: P1892R1 "Extended locale-specific presentation specifiers for std::format", resolving 1 NB comment:

LWG motion 23: P1645R1 "constexpr for <numeric> algorithms", resolving 1 NB comment:

Mandating

LWG motion 24: P1718R2 "Mandating the standard library: Clause 25 - Algorithms library"

LWG motion 25: P1719R2 "Mandating the standard library: Clause 26 - Numerics library"

LWG motion 26: P1686R2 "Mandating the standard library: Clause 27 - Time library"

LWG motion 27: P1720R2 "Mandating the standard library: Clause 28 - Localization library"

LWG motion 28: P1721R2 "Mandating the standard library: Clause 29 - Input/Output library"

LWG motion 29: P1722R2 "Mandating the standard library: Clause 30 - Regular Expression library"

LWG motion 30: P1723R2 "Mandating the standard library: Clause 31 - Atomics library"

LWG motion 31: P1622R3 "Mandating the standard library: Clause 32 - Thread support library"

Notable changes to papers as moved

CWG motion 3

The note added as part of the resolution of NB GB 079 was reworded editorially, as described below in the list of editorial NB comment resolutions.

CWG motion 8

The following feature test macro changes were made for this paper, after consultation with SG10:

The feature test macro __cpp_nontype_template_parameter_class has been removed to indicate that the feature added by P0732R2 is no longer present in the same form.

The value of the feature test macro __cpp_nontype_template_args has been increased to 201911L to indicate support for P1907R1.

LWG motion 11

The description of this paper specifies that:

each such base() member [of a range adaptor, that returns a copy of the underlying view] be replaced to by two overloads: a const-qualified overload that requires the type of the underlying view to model CopyConstructible, and a &&-qualified overload that extracts the underlying view from the adaptor

but the wording changes omitted explicit editing instructions to make these changes to the take_while_view, drop_view, drop_while_view and elements_view range adaptors, which were added by P1035R7 (2019-07 LWG Motion 23), after R0 of this paper was authored.

Consistent with the proposal in the paper, and after consulting the paper authors and the LWG chair, the corresponding changes were also applied to the additional range adaptors listed above.

LWG motion 16

This paper removed the exposition-only concept range-impl, inlining it into its only remaining user, the range concept. However, two uses of range-impl were left behind. These have been updated and suitably adjusted to refer to range instead.

LWG motion 13 (P1394R4) added a couple of new uses of the exposition-only concept forwarding-range, which was removed by this paper. These uses have been replaced with safe_range.

LWG motion 19

Did not add the macro __cpp_lib_atomic_ref. This macro already existed with the specified value.

Did not change the value of the __cpp_lib_chrono macro. The requested new value of this macro (201803L) is actually lower than the current value (201907L, not 201611L as listed in P1902R1). The chair of SG10 has confirmed that the request to change this macro's value is an error. The pre-existing, higher value is retained.

Did not change the value of the __cpp_lib_ranges macro. The requested new value of this macro (201907L) is lower than the value 201911L introduced by P1716R3 (LWG motion 6).

Disposition of editorial NB comments on C++ 2020 CD1

Listed below are draft disposition for all comments that were filed as editorial in the ISO 14882 CD (2019) NB comments. Except where otherwise noted, these dispositions only represent the current viewpoint of the Project Editor.

US 021: Accepted, fixed in 50e55ce9.

GB 022: Accepted with modifications, fixed in 8cc6bd34.

JP 023: Accepted, fixed in 868934f7.

JP 030: No consensus for change.

US 031: No consensus for change.

GB 032: Accepted, fixed in 84a1cd53.

US 037: No consensus for change.

FR 039: Accepted with modifications, fixed in 68a6dfef.

JP 045: Accepted, fixed in d401794f.

US 047: Accepted with modifications, fixed in 785f689d.

US 052: Accepted, fixed by P1971R0 (CWG motion 3).

JP 057: Accepted, fixed in a06b7a49.

GB 078: Accepted, fixed in e3bb2eba.

GB 079: Accepted, fixed by P1971R0 (CWG motion 3).

US 085: No consensus for change.

US 088: Accepted with modifications, fixed in d382ea4e.

GB 089: Accepted, fixed in fa42d5a6.

US 099: Accepted, fixed in 9b0502bf.

US 106: No consensus for change.

US 108: Accepted, fixed in 2f42a930.

US 153: No consensus for change.

US 154: Duplicate of US 153.

GB 155: Accepted, fixed in 98e57ff5.

JP 177: Accepted, fixed in 8be40ff0.

GB 200: No consensus for change.

US 216: Accepted, fixed in dfcc4691.

JP 218: Unresolved, reassigned to LWG

JP 219: Unresolved, reassigned to LWG

GB 225: Unresolved, reassigned to LWG

US 242: No consensus for change.

US 258: Accepted, fixed in f36f871c.

GB 280: Accepted, fixed by P1870R1 (LWG motion 16).

US 295: Accepted with modifications, fixed in 53f0651e.

JP 314: Accepted with modifications, fixed in 136312cf.

JP 319: Accepted, fixed in 5ac298cc.

US 325: No consensus for change.

US 327: Unresolved, reassigned to LEWG

US 328: Unresolved, reassigned to LEWG

US 330: No consensus for change.

JP 338: Accepted, fixed in 742f1086.

JP 339: Accepted, fixed in 25a08918.

JP 340: Accepted, fixed in f88f6747.

JP 341: Accepted, fixed in d545c37d.

JP 343: Accepted, fixed in 9252441e.

JP 348: Accepted, fixed in 01dea5f5.

JP 349: Accepted, fixed in adcf12ea.

JP 350: Accepted, fixed in 53b429c9.

US 357: Accepted with modifications, fixed in af747d64.

US 359: Accepted, fixed by P1960R0 (LWG motion 18).

JP 362: Accepted with modifications, fixed in 195d5bab.

CA 366: Accepted, fixed in eaf23727.

JP 373: Accepted with modifications, fixed in 41058d90.

JP 374: Accepted, fixed in dbc3d6a5.

JP 376: Accepted, fixed in 8b5c768e.

Late comments

CH 02: Accepted, fixed in 5ee93fd7.

Notable editorial changes

Typeface

The typeface used for grammar productions has been changed from italic to a slanted sans-serif font in order to distinguish grammar productions from defined terms. Many other options have been considered, but this option provided the most visually appealing outcome.

Please inform the editors if you discover any places where the wrong typeface is used for a grammar production or other italicized term.

Section moves

Moved [temp.deduct.guide] under [temp.class], alongside the description of members of class templates.

Moved [range.istream] under [range.factories]. basic_istream_view is a range factory not a range adaptor.

Section label changes

Minor editorial fixes

A log of editorial fixes made to the working draft since N4835 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.

commit 8a4e51ea8270705e747383c7e7d0513228d94e94
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 10 22:49:36 2019 +0200

    [basic.lval] Adjust cross-reference in the note. (#3288)

commit 6af984eaa62b63e60dd34d6a609807a85f4c8d36
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 10 22:30:19 2019 +0200

    [over.binary] Define 'comparison operator function' and related terms

    and use them consistently.

commit 29c5bda6e44e3742109f6f2af415caa8c198619c
Author: Casey Carter <cartec69@gmail.com>
Date:   Fri Oct 11 14:13:29 2019 -0700

    [set.symmetric.difference] Strike duplicated sentence from paragraph 2 (#3293)

commit 5ac298cc18601a4da82a25f9ed3c3dd8e24021d9
Author: Casey Carter <cartec69@gmail.com>
Date:   Fri Oct 11 14:14:33 2019 -0700

    [alg.min.max] Correct errors in paragraph 22 (#3292)

    ...from incorporation of P0896R4.

commit 767f7a885ef28e9a1c66d1b90cb344296eefebc4
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Sat Oct 12 08:26:49 2019 +0100

    [readable.traits] Add template argument list to constrained specialization (#3294)

commit bfff83e94a1d66abcd90b813a4c0d31c1e637cf9
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Oct 16 20:14:54 2019 +0100

    [range.subrange.access] Fix typo (#3299)

commit f741def78c391a329bc694733c4fb8626457886e
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Oct 16 20:16:27 2019 +0100

    [iterator.concept.winc] Fix "extended integral type" (#3301)

    The term defined in [basic.fundamental] is "extended integer type".

commit 723b75c03633b43c8c1dbe3b75d2e8f70a2f8fe0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Oct 16 21:46:29 2019 +0200

    [class.dtor] Remove incorrect note about trivial vs. constexpr. (#3249)

commit 242354653b6d8412c9ab5a9fd6e47eb3805e0e93
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 18 22:04:27 2019 +0200

    [time.cal.ymd.overview] Typo fix: comma at end of sentence. (#3304)

commit 5a31c73501ef440d7f1e8414a8e59c64778f0433
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 18 22:29:19 2019 +0200

    [time.zone.db.tzdb] Add missing '\pnum'. (#3305)

commit 271360753f2a5b8f7701a007ebb1f240d95cccea
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Oct 19 18:19:37 2019 -0700

    [cmp.alg] Correct weak_ordering::equal to the intended
    weak_ordering::equivalent.

    Also add some missing formatting.

commit 9af3fc206fb538760af373b78d49f9658a0eeec8
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Mon Oct 21 21:06:07 2019 +0100

    [basic.scope.class] Reinstate a qualification that was lost in 0e26279b88c3b8b0a09babdeec8418d383f07419.

    Without the introductory sentence that was deleted by that commit, we need to say explicitly that we are talking about a declaration _in a class_.

commit 22725b81fd2afc383aa793a740776024c33457a8
Author: Krystian Stasiowski <sdkrystian@gmail.com>
Date:   Tue Oct 22 04:46:48 2019 -0400

    [class.access] Allocation order of data members is described in [expr.rel] (#3316)

commit e4b690b6bafc31681b97b7d301e4ab25f881a185
Author: Krystian Stasiowski <sdkrystian@gmail.com>
Date:   Tue Oct 22 04:48:20 2019 -0400

    [stmt.dcl] Vacuous initialization is defined in [basic.life] (#3314)

commit 9f23d5cdd291492980bbd3a4cea6650a600c87f9
Author: Casey Carter <Casey@Carter.net>
Date:   Thu Oct 24 00:19:56 2019 -0700

    [multimap.modifiers] "Mandates" should be "Constraints" (#3322)

    Fixes an editorial error merging P1463R1.

commit 868934f7330c1444d09451a50fac224e9ed2eb62
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 21:56:52 2019 +0200

    [intro.structure] 'Note n to entry' is also a note.

    Fixes NB JP 23 (C++20 CD)

commit 84a1cd53841535b72b798a7349cfc914b26eae91
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 21:16:11 2019 +0200

    [basic.lookup.argdep] Add missing namespace qualification in example.

    Fixes NB GB 032 (C++20 CD)

commit d401794faf9b136c7f85aa109afdd6d03a767c9a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 21:10:51 2019 +0200

    [expr.type] Fix typo when using 'reference-related'.

    Fixes NB JP 045 (C++20 CD)

commit fa42d5a6e20abe9e8aab3276202d4f23b31b782e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 22:04:25 2019 +0200

    [module.reach] Clearly separate translation units in example.

    Fixes NB GB 089 (C++20 CD)

commit 9b0502bf56cbfe4fe2b8407d1e2367613213080b
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 15:58:21 2019 +0200

    [temp.param] Strike redundant normative sentence.

    Non-type template parameters of non-reference non-class type are
    prvalues, thus the usual reference initialization rules
    create a temporary.

    Fixes NB US099 (C++20 CD)

commit 8be40ff0693d5a09310c25a5fff6c14dcfc89717
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:56:34 2019 +0200

    [cmp.alg] Fix typo for 'ISO/IEC/IEEE 60559'.

    Fixes NB JP 177 (C++20 CD)

commit f36f871c3bc780c13a5ba5ef2b7952c45d6d4cf5
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 15:42:02 2019 +0200

    [iterator.requirements.general] Define 'reachable from' to avoid confusion

    with 'reachable' used finding declarations in modules.

    Fixes NB US 258 (C++20 CD)

commit 742f108675594d0c116eda7faa75ebf9637dbee2
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 10:51:40 2019 +0200

    [time.cal.day.nonmembers] Fix return type of operator""d

    Fixes NB JP 338 (C++20 CD)

commit 9252441e422b601301c20c93d6117f07d0e1128c
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 10:52:56 2019 +0200

    [time.cal.year.nonmembers] Fix return type of operator""y

    Fixes NB JP 343 (C++20 CD)

commit d545c37d9306fe70d41ed24f93dc36b2728d0383
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:44:43 2019 +0200

    [time.cal.month.members] Remove nested-name-specifier from declaration.

    Fixes NB JP 341 (C++20 CD)

commit 25a089189834ab99c3150ff5fb2b3eb342d8a0e4
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:45:45 2019 +0200

    [time.cal.month.members] Remove nested-name-specifier from declaration.

    Fixes NB JP 339 (C++20 CD)

commit f88f6747eb11504bd8a811576a5375f86bf815cd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:46:33 2019 +0200

    [time.cal.month.members] Remove nested-name-specifier from declaration.

    Fixes NB JP 340 (C++20 CD)

commit 53b429c9fd826876c80b150d913986c815d69932
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:23:00 2019 +0200

    [syncstream.osyncstream.overview] Add default template arguments for 'basic_osyncstream'.

    Fixes NB JP 350 (C++20 CD)

commit adcf12ea4385a1e2fb122b078a36c38d956b57be
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:25:34 2019 +0200

    [syncstream.syncbuf.overview]  Add default template arguments for 'basic_syncbuf'.

    Fixes NB JP 349 (C++20 CD)

commit 01dea5f57681a079b6da91b872fe0ce68d261c5f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:27:50 2019 +0200

    [syncstream.syn] Add default template arguments

    in the header synopsis for 'basic_syncbuf' and 'basic_osyncstream'.

    Fixes NB JP 348 (C++20 CD)

commit 41058d905c1b232ee574f318f0ba9c8b747eaaac
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 21:06:30 2019 +0200

    [diff.cpp17.lex] Add cross-references for 'requires' keyword.

    Fixes NB JP 373 (C++20 CD)

commit dbc3d6a57cbf3e3c281d77c5492ffdc418a42658
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 20:48:56 2019 +0200

    [xrefdelta] Fix typo for 'fmtflags'.

    Fixes NB NL 374 (C++20 CD)

commit 8b5c768e3fdcd5fbd99bdb501ca3a48e710737c3
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 25 20:54:29 2019 +0200

    [depr.impldec] Fix cross-reference for 'deleted function'.

    Fixes NB JP 376 (C++20 CD)

commit b421913edbb17ba66c1dc57caf5264a19cbb7668
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Mon Oct 28 18:56:14 2019 +0000

    [ios.members.static] Add "static" to declaration

commit a06b7a497ef2950c07144e97ae0d5919c2dca5d9
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 29 12:31:36 2019 +0100

    [dcl.list.init] Make spacing around & declarator operator locally consistent. (#3353)

    Fixes NB JP 057 (C++20 CD)

commit d382ea4e94f9d2d99bb08936d13f5a90772a292e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 29 12:32:05 2019 +0100

    [module.global,cpp.glob.frag] Rename labels to ...global.frag. (#3351)

    That is, rename [module.global] to [module.global.frag]
    and [cpp.glob.frag] to [cpp.global.frag].

    Fixes NB US 088 (C++20 CD)

commit 136312cffd9014daa49afe907d2da45d3dd5dfe8
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 29 12:32:44 2019 +0100

    [algorithms.parallel.defns] Rename to 'Preamble' (#3350)

    and avoid hanging paragraph in [algorithms.parallel]
    by moving it here.

    Fixes NB JP 314 (C++20 CD)

commit 195d5bab790c05c5f049c490b0af28fe1b94c22d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 29 12:36:56 2019 +0100

    [thread.jthread.static] Repeat '[[nodiscard]]' from synopsis. (#3326)

    Fixes NB JP 362 (C++20 CD)

commit af747d6426c77527c681a5d8dd9cb0a4d66cfbf0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 11:12:26 2019 +0200

    [atomics.ref.int,atomics.types.int] Clarify notes on atomic/_ref<bool> specializations.

    Fixes NB US 357 (C++20 CD)

commit 785f689d314f45719ee7036b3d7420d7ed7b5ab2
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 20:41:34 2019 +0200

    [expr.prim.id.unqual] Excise redundant special case for the type

    of the template parameter object.

    Fixes NB US 047 (C++20 CD)

commit 2f42a9303a61a498294a21ce73e6513ec43be011
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 21:05:37 2019 +0200

    [temp.constr.decl] Missing case when constraints are associated with a declaration.

    Fixes NB US 108 (C++20 CD)

commit 50e55ce976e2c3ce02340dd034ea2f0c373f0f53
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 26 22:34:52 2019 +0200

    [defns.block.stmt] Add definition of block as a compound statement.

    Also clean up index entries to differentiate
    'to block execution' from 'compound statement'.

    Fixes NB US 021 (C++20 CD)

commit e3bb2eba678062aa433e49758fd5c1f99c2760a6
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun Oct 27 21:03:12 2019 +0100

    [namespace.future,diff.cpp14.library] Properly refer to grammar 'digit'

    when defining reserved namespace names.

    Fixes NB GB 078 (C++20 CD)

commit 8cc6bd34b1075d9e1ad4e8226fcffd56084a9396
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 31 01:08:46 2019 +0100

    [intro.compliance] The standard library also offers header units.

    Fixes NB GB 022 (C++20 CD)

commit f563f13c549f85a227d33100b17118acd2fae22b
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Oct 30 17:53:51 2019 -0700

    [range.join.iterator] Remove spurious paragraph number. (#3358)

commit 53f0651e981ac5a1b22eedc16e0c3ba54a585f08
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 31 02:01:42 2019 +0100

    [range.join.iterator] Clarify if ... otherwise ladder.

    Fixes NB US 295 (C++20 CD)

commit 673d504e1b61c1a392aa9dea8318e66fb08744ae
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Nov 1 08:26:28 2019 +0100

    [class.copy.assign] Remove semicolon in 'of the form' phrase.

    This improves consistency with other such phrases.

    Fixes late comment CH 02.

commit 42eddb8cedc876bf0df4f9f7e0c28febec38454d
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Oct 21 11:46:26 2019 -0700

    [lex.key] Don't use a colon to introduce a floating table.

    This table floated off to a different page, so the colon pointed
    nowhere.

commit 2bb2cd92adf5f73f62c502a595528c52321852f8
Author: Nikita Kniazev <nok.raven@gmail.com>
Date:   Mon Nov 4 22:50:05 2019 +0300

    [basic.types] Replace macro constant with constexpr variable

commit ee2879195da176ab31a841b8c5c833730d55b756
Author: Sebastian <12844423+seb-mtl@users.noreply.github.com>
Date:   Tue Nov 5 11:23:55 2019 -0500

    [thread.jthread.class] close namespace in synopsis

commit f8a564a086d539202f8811a0fe004eda6dc0ddbc
Author: Akira Takahashi <faithandbrave@gmail.com>
Date:   Thu Nov 7 17:44:07 2019 +0900

    [time.cal.day.nonmembers] Add missing closing brace to p6 (operator-)

commit cff2b503ae97fa83529cb274fe12043510e0f1e9
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Nov 8 21:01:46 2019 +0000

    [conv.rank] Fix cross-reference to expr.arith.conv (#3384)

commit 68a6dfef6e0880c33193f68a5c035efc8cdf3e09
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Nov 8 23:14:49 2019 +0100

    [basic.lookup.argdep] Inline the definition of 'interface'.

    Fixes NB FR 039 (C++20 CD)

commit 98e57ff591d2bd1d258074e06d51fe1cb3e7279d
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Nov 8 21:57:42 2019 +0000

    [macros, structure.specifications] Rename "Expects:"/"Ensures:" to "Preconditions:"/"Postconditions:"

    Also adjust a few hyphenation hints where needed.

    Fixes NB GB 155 (C++20 CD)

commit dfcc469164f05145aa029a3d33a0ab8721ad0d2f
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Nov 8 22:16:00 2019 +0000

    [util.smartpr.atomic] Moves subclause from "Utilities" to "Atomics".

    Also renames several headings from "Atomic specializations ..." to
    "Partial specializations ...", and adds a cross reference to [smartptr].

    Fixes NB US 216 (C++20 CD)

commit 4d1e9eb84636960724a5553101d578bc1683e702
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Mon Nov 11 18:20:16 2019 +0800

    [structure.specifications] Rename remaining "Expects"/"Ensures" to "Preconditions"/"Postconditions"

commit 7b08a8bac497cc297a38c925bc87a64dc79bde32
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Nov 12 11:24:18 2019 -0800

    [iterator.concept.writable] Correct repeated word. (#3369)

commit 81f1d689f51fe823d7f6faa659f03b2d787aebf6
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Nov 12 11:25:47 2019 -0800

    [range.filter.overview] Avoid double-negative. (#3355)

commit a6f1f0000d274b406900a462297160f6de3a6d55
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 19 14:46:46 2019 -0800

    [temp.expl.spec] There is no such thing as a "consteval property".
    Rephrase to use the correct term "immediate function".

commit 2ea2858eda939494fce400ea265965cce6b84e1e
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 19 14:51:00 2019 -0800

    [dcl.inline] Move note that 'inline' doesn't affect linkage somewhere
    more suitable.

commit 7e730f899be7336a1d0c87a24a53167be7f834d6
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 19 15:58:44 2019 -0800

    [basic.compound] [numeric.ops.midpoint] Unify terminology used to
    identify array elements.

    [expr.add] [expr.rel] [expr.eq] [numeric.ops.midpoint] Remove unused
    name "x" from footnote.

commit e9a3d1ddf21212a160c3b57aeec57acf8fe84c97
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 19 17:32:07 2019 -0800

    [expr.const] Fix wording confusion over "is a core constant expression"
    versus "does not disqualify some other expression from being a core
    constant expression".

commit 19148dbc8e3a92148a5fb28bee62994998743605
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 19 19:39:09 2019 -0800

    [module.private.frag] Fix description of the private module fragment in
    the note, and update the example to match a revised version from Nathan
    Sidwell.

commit 88b87a2f54e44501d84385d1f07d6cdc6b3f4857
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Mon Nov 18 14:34:28 2019 -0800

    [temp.constr.op] Reword comment in example added for US111 as suggested by Casey

commit 818e377c13b4b2cc80b292310aba2430538f0d56
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 20 12:44:00 2019 -0800

    [temp.constr.op] Stop talking about the programmer's intent being
    unclear in a note; instead merely clarify the language's response
    to the various options available to the programmer.

commit b369c9229f9b3223c967ab00ccb1e54eafec6a7a
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 20 13:37:07 2019 -0800

    [over.over] Extract the non-template function case from the description
    of the target type and rearrange so that it better parallels the
    function template specialization case.

commit 6ec7eb80fcf30c44632bba59826e4f26c53688ee
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 12 19:11:20 2019 -0800

    [temp.param] [temp.arg.nontype] Update examples and redundant duplicated
    wording to match P1907R1.

commit 0c61ad109ef8847f9bcaea4cb725537fda0ba99d
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 15 16:57:10 2019 -0800

    [cpp.predefined] Bump value of __cpp_nontype_template_args to 201911L
    for P1907R1, and remove __cpp_nontype_template_parameter_class to
    indicate that the feature added by P0732R2 is no longer present in that
    form.

commit 7bf810a07f8223b57a0ab1d7eb5d9e82e99cdef7
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 13 18:12:12 2019 -0800

    [concept.equivalencerelation] Rename to [concept.equiv].

commit dde89d6d2a478b18351a4ba94a0523417fe05996
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 13 22:15:27 2019 +0100

    [range.cmp] Avoid introducing unused 'P'

commit 1dd384aad27415a1415ad9e81273141ce73a7ce2
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 15 16:37:26 2019 -0800

    [range.adaptors] Extend the changes from P1456R1 to also apply to
    take_while_view, drop_view, drop_while_view, and elements_view.

    These are covered by the direction proposed in the paper, but were
    inadvertently omitted from the list of things to change in the wording.

commit 6d9db6ae5b3ece80558b95a519d939b58db67623
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 20 17:52:31 2019 -0800

    [range.view] Make the requirement for constant-time move operations and
    destruction explicit in the description of when a type models view.

commit de25e23ff5306c69fa74893824d8df7c03197429
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 15 16:52:09 2019 -0800

    [string.view] Shorten stable name [string.view.deduction] -> [string.view.deduct]

    Also replace commas with periods in lists of constraints.

commit 6c4806f2704b758b8af506e4f24a4a0931cfdcdf
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 14 10:01:08 2019 +0100

    [span.cons] Rephrase constraint on input element type to avoid
    overfull \hbox.

commit 25738f733e5e720fc303effa73da391679750499
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 14 22:22:17 2019 +0100

    [span.cons] Do not attempt to initialize size_ with an iterator.

commit 39665f5324d82b92947d6594a04693e28faf7d81
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Fri Nov 15 17:44:07 2019 -0800

    [range.range] Fix example to clarify who/what is being specialized for/with/on what.

commit bceff414a33f9ceed3a1823a885067a5d0ba6091
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 23 17:57:05 2019 -0800

    [range.range] [span.cons] Update remaining uses of removed
    exposition-only concepts range-impl and forwarding-range with range and
    safe_range as appropriate.

commit e6428e59d58c1c2822c98a15605e2443552a5d35
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Tue Nov 19 13:32:22 2019 -0800

    [version.syn] Revert __cpp_lib_chrono back to 201907L as directed by @brevzin in #3476.

commit af48b063f9618123d2890796ae9dc95e39fc92f9
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Fri Nov 15 13:15:36 2019 -0800

    [atomics.types.generic] Added reference to [atomics.types.operations] in synopsis

commit ab483d487983af8c5ee0c2b25b9da40908f1ed9a
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Sat Nov 16 01:50:56 2019 -0800

    [basic.compound] Fix the wording "A pointer to objects".

commit ad91aa2b2b62305250e7667c53276c794e3eee8d
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Thu Nov 14 17:10:58 2019 -0800

    [format.string.std] Use bullets to list the effects of the locale-specific form on each arithmetic type.

commit dea4ded28cf7e315b728f3ad31f0af96f9ff58e8
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Thu Nov 14 17:15:49 2019 -0800

    [format.string.std] Provide a definition for the locale-specific form.

commit d1d3793c1fa08eb4246ac8f218e7a949ae61e28b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 22 20:51:26 2019 -0800

    [format.string.std] 'decimal radix separator' -> 'radix separator'.

    The use of the word 'decimal' here is not intended to mean "only base
    10", and so serves only to confuse the reader.

commit 411531100c0d3e922753935f30835e2cfded2ded
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Thu Nov 14 10:38:32 2019 -0800

    [numeric.ops] Reformat itemdecl declarations to match the <numeric> synopsis.

commit 6c20c2b4cdfc304d58a093e2ce1f49944ac4e8da
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 16 01:51:16 2019 +0000

    [rand.util.seedseq] Add cross-reference for "writable".

    Co-Authored-By: Johel Ernesto Guerrero Peña <johelegp@gmail.com>

commit 6ceb2a6b7627d608bd5e4dde5ccd12da70fe20bb
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 18 16:29:30 2019 -0800

    [time.clock.cast.fn] Fix inappropriate phrasing of "Mandates:" element.

commit 938c089abd5a0516b18dd965a74a68ebd571b2dc
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Wed Nov 20 12:13:53 2019 -0800

    [thread] Add missing _v's to uses of type traits in Mandates elements.

commit dd294d43f074dd5f218aaa6e216afb1ce512a5ac
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Wed Nov 20 12:15:33 2019 -0800

    [thread.req.timing] Remove "note" markers around note.

    This change was present in P1622R3 but the markup for the change was
    missing. However, the change was requested by LWG and intended to be
    made by this paper.

commit ff9a0d2ce8ffb31b6a6a7321aaf7d6c2653b2029
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 23 21:44:21 2019 -0800

    [atomics.types.operations] Remove uses of deprecated ATOMIC_VAR_INIT
    from examples.

commit fc48c9b846c348a78eae1592d1c0f1aee1336008
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun Nov 24 23:04:53 2019 +0100

    [dcl.decl] Avoid double negative.

commit c16eb1cb7b104090f9cc41d6fd31ae5ed7fcb30e
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Sun Nov 24 14:30:28 2019 +0100

    [complex.ops] Remove empty paragraph.

commit abf6868cbdbcbe16fcd699c878e2533cbe4c800a
Author: Krystian Stasiowski <sdkrystian@gmail.com>
Date:   Fri Nov 22 16:15:04 2019 -0500

    [temp.local] Change "template-parameter" to "name of a template parameter"

commit 739c4d48ed7a3b7d4f365e344cd178165dee2c2e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 21 23:36:54 2019 +0100

    [lib] Replace 'this subclause' with numbered subclause references.

commit bffe678f815d3dd241cc71ed5816074b80d2dfff
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 21 21:29:32 2019 +0100

    [lib] Remove 'Constructs an object of type ...' phrases

    for constructors; this effect is implied by the
    core language.  Only simple phrases are removed;
    more complex sentence structures are left unchanged.

commit ad5767e6057bb05d8bd185e3bb3bfb18eed87dc0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 21 00:41:14 2019 +0100

    [dcl.fct.def.coroutine] Use 'encloses' instead of imprecise 'contains'.

    The phrase 'the function-body encloses X' is also used
    in [dcl.constexpr].

commit c1c6a1d1a402f421e70faf233256c36d43d05d95
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 25 11:46:54 2019 -0800

    [dcl.constexpr] Make cross-reference for "encloses" more precise.

commit 1457b30569d1611af2e12e50ed481673042e0875
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 25 12:04:35 2019 -0800

    [dcl.type.elab] Make cross-references for "class" and "union" more precise.

commit 129f699e50e3052ca65da1ff69776fa277f86ef5
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 25 12:11:05 2019 -0800

    [class.pre] [class.union] Clean up definition of 'union'.

    Move primary definition from [class.pre] to [class.union]. Add note to
    [class.pre] specifying where to look for the meaning of the class-key.
    Move note on aggregate classes from [class.pre] to [class.prop].

commit 02e9b5da556ff8c6476dbb9648e692266cf2bb22
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 20 23:54:35 2019 +0100

    [any.cons,any.assign] Remove redundant postconndition for moves.

    [lib.types.movedfrom] already specifies that moved-from
    objects are left in a valid but unspecified state.

commit 19a66878a8c7ba122c06b5b14a43ec206b8f59bd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 20 21:46:19 2019 +0100

    [temp.deduct.guide] Move into [temp.class].

    Deduction guides apply only to class templates, so their
    descriptions should be located in close proximity.

commit 0ef6404655fb0d94b15cab11aef7bb5899d47a78
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 20 23:44:45 2019 +0100

    [temp.concept] Move grammar non-terminal concept-definition here.

    Also move concept-name here, both from [temp.pre].

commit 0606c872e07ac3658ad32050d79449a7379c4e70
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Tue Nov 19 17:14:41 2019 +0800

    [time.cal.wdidx.nonmembers] Remove extra "

commit c64f4bd12c57e883bdb32ff69e00f2e3e26ed665
Author: morinmorin <mimomorin@gmail.com>
Date:   Sun Nov 17 12:46:48 2019 +0900

    [concept.regularinvocable] move iref to a better place

commit 2ca40df7253fd4be7e730950e57159584bf7b5f6
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 15 17:34:13 2019 -0800

    [defns.access] Clarify definition of "access".

    Add cross-linking between the places that introduce accesses and the
    definition of the term, and add a note explaining that we only ever
    access objects of scalar type.

commit 24f3e89e08993598a297ab00af5468ce81a2ec05
Author: Casey Carter <Casey@Carter.net>
Date:   Fri Nov 15 17:06:23 2019 -0800

    [range.istream] Relocate under [range.factories]

    Resolves #3468.

commit 4bec8476c91d0c731dd19f637e76a34fdc9422fd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Nov 15 22:08:46 2019 +0100

    [format.arg] Fix parameter type for basic_format_arg constructor.

commit 16972c271e418d2aaf9689e936fa5c61447c17e3
Author: Kerdek <Kerdek@users.noreply.github.com>
Date:   Wed Nov 13 22:50:23 2019 -0500

    [basic.life] Use idiomatic wording.

    Periods of construction and destruction are not referred to as phases anywhere else.

commit 1586e4b48ca6b787c282c1731e738226068c8de9
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun Oct 20 21:57:20 2019 +0200

    [numerics,input.output] Consistently use ios_base::failure.

    Do not refer to the inherited member in a derived class.

commit f426cfbdbae8aed86273e3868ce7382e647926c0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 19 22:17:34 2019 +0200

    [std] Remove 'shall' from notes.

    Also update the automatic check script to prevent
    future regressions.

commit d26d3bd5c4fa6e9c2e7ecd2c00c5a6080c9ea4de
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Oct 16 23:27:10 2019 +0200

    [std] Fix cross-references pointing to entire clauses now that we have 'preamble' sections.

commit 02e41833de8737368fe1f31c19dfff468050012e
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 25 16:51:27 2019 -0800

    [dcl.type.elab] Clarify that there is no expected correlation between
    using 'class' or 'struct' in a class definition and using the same
    keyword in an elaborated-type-specifier.

commit 225cc43d7d92c7854cdb3726b951f96032e0f48b
Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date:   Mon Sep 16 00:06:39 2019 -0600

    [lib] Replace "shall not X" with "does not X" when it describes library behavior.

    In these places we aren't saying "it's UB if X happens"; we're literally
    specifying the behavior of a library function as "X does not happen,
    we promise."

    Jonathan Wakely points out that there is still room for the user to cause UB
    by specializing `pair`, `duration`, `function`, etc. such that their specializations
    do X. In that case, the UB happens due to [namespace.std] p2, which requires
    that "the [program-defined] specialization meets the standard library requirements
    for the original template."

commit 035d46b4c40655e5f4f69f77e8c5a1106eab89bd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Oct 16 21:37:17 2019 +0200

    [time.duration.cast,time.point.cast] Rename subclause to 'Conversions'.

    The subclause describes functions beyond
    duration_cast and time_point_cast.

commit 029f630c324dc958b288e8bd2268ae7791a7089c
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Mar 11 16:20:44 2019 -0700

    [lex.charset] Fix various issues with the description of UCNs.

    Clarify that \U sequences not beginning 00 are ill-formed. Clarify
    handling of code points naming reserved or noncharacter code points.
    Remove unnecessary circumlocution through "short identifiers" by
    directly talking about code points. Use code point values directly
    rather than using C++ 0x notation.

    [lex.string] Fix description of what UCNs mean, and convert it to a
    note.

commit b5cd9909ffa2b0a44509aebabac7df8b92385298
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Tue Nov 26 12:25:22 2019 -0400

    [ranges.syn, range.adaptors] Name view template parameter V for consistency (#3514)

    P1035 used `R` for such template parameters, introducing an inconsistency.

commit bddd47cb9ded922626b9930b5165af438dcd6c72
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 26 21:01:07 2019 +0100

    [temp.param] Move grammar non-terminal 'type-constraint' here

    from [temp.pre].
    Also move the definition of 'immediately-declared
    constraint' and fix all cross-references.

commit 7e4a9fb3da65dbd04843c865e3ae6728063242a0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun Nov 24 23:51:12 2019 +0100

    [over.match.list] Acknowledge [over.ics.list] and clarify text.

commit 782cad5e446a765aee1c674f4a316178185c5c19
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Nov 15 22:02:32 2019 +0100

    [basic.def.odr] Split long-winded bulleted sentence.