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

2018-12-07
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 Casey Carter and Tim Song for supplying the LaTeX sources for P0896R4 (LWG motion 25, 208 pages of wording changes) and P1148R0 (LWG motion 12, 55 pages of wording changes), respectively, and to Tony Van Eerd for supplying a pull request for P1085R2 (LWG motion 23).

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

New papers

Papers N4788 and N4789 (earlier versions of the post-San-Diego Working Draft and Editors' Report) are withdrawn and replaced by the above papers due to an administrative hiccup.

Motions incorporated into working draft

Core working group motions

CWG motion 1: Core issue resolutions for 3 issues in "tentatively ready" status applied, resolving 4 issues:

CWG motion 2: P0668R5 "Revising the C++ memory model"

CWG motion 3: P0982R1 "Weaken release sequences"

CWG motion 4: P1084R2 "Today's return-type-requirements are insufficient" see below

CWG motion 5: P1131R2 "simple-template-id is ambiguous between class-name and type-name", resolving 1 core issue:

CWG motion 6: P1289R1 "Access control in contract conditions"

CWG motion 7 was not approved

CWG motion 8: P1002R1 "try-catch blocks in constexpr functions"

CWG motion 9: P1327R1 "Allowing dynamic_cast, polymorphic typeid in constant expressions"

CWG motion 10: P1236R1 "Signed integers are two's complement" (wording for P0907R4)

CWG motion 11: P0482R6 "char8_t: a type for UTF-8 characters and strings" see below

CWG motion 12: P1353R0 "Missing feature test macros"

CWG motion 13: P1073R3 "Immediate functions"

CWG motion 14: P0595R2 "std::is_constant_evaluated()" see below

CWG motion 15: P1141R2 "Yet another approach for constrained declarations" see below

CWG motion 16: P1094R2 "Nested inline namespaces"

CWG motion 17: P1330R0 "Changing the active member of a union inside constexpr"

Core motions added a total of 1 page to Clause 1-14.

Library working group motions

LWG motion 1 applies to the Concurrency TS

LWG motions 2 and 3 apply to the Library Fundamentals TS

LWG motion 4: Library issue resolutions for 9 issues in "Ready" status and 23 issues in "Tentatively Ready" status applied:

LWG motion 5: P1123R0 "Editorial guidance for merging P0019R8 and P0528R3" (see P0019R8, P0528R3)

LWG motion 6: P0487R1 "Fixing operator>>(basic_istream&, CharT*)", resolving 1 library issue:

LWG motion 7: P0602R4 "variant and optional should propagate copy/move triviality"

LWG motion 8: P0655R1 "visit<R>: explicit return type for visit"

LWG motion 9: P0972R0 "<chrono> zero(), min(), and max() should be noexcept"

LWG motion 10: P1006R1 "constexpr in std::pointer_traits"

LWG motion 11: P1032R1 "Miscellaneous constexpr bits" see below

LWG motion 12: P1148R0 "Cleaning up clause 20 (strings)"

LWG motion 13: P0318R1 "unwrap_ref_decay and unwrap_reference" see below

LWG motion 14: P0357R3 "reference_wrapper for incomplete types"

LWG motion 15: P0608R3 "A sane variant converting constructor"

LWG motion 16: P0771R1 "std::function move constructor should be noexcept"

LWG motion 17: P1007R3 "std::assume_aligned"

LWG motion 18: P1020R1 "Smart pointer creation with default initialization"

LWG motion 19: P1285R0 "Improving completeness requirements for type traits"

LWG motion 20: P1248R1 "Remove CommonReference requirement from StrictWeakOrdering"

LWG motion 21: P0591R4 "Utility functions to implement uses-allocator construction"

LWG motion 22: P0899R1 "LWG 3016 is not a defect" (see LWG 3016)

LWG motion 23: P1085R2 "Should span be regular?"

LWG motion 24: P1165R1 "Make stateful allocator propagation more consistent for operator+(basic_string)"

LWG motion 25: P0896R4 "The One Ranges proposal" see below

LWG motion 26: P0356R5 "Simplified partial function application" see below

LWG motion 27: P0919R3 "Heterogeneous lookup for unordered containers"

LWG motion 28: P1209R0 "Adopt consistent container erasure from Library Fundamentals 2"

Library motions added a total of 133 pages (and 1 Clause) to Clause 15-31.

Notable editorial changes

CWG motion 11 and CWG motion 10

Rebased char8_t wording on the revised description of fundamental types introduced by CWG motion 10. The description of unsigned char as the underlying type of char8_t now renders unnecessary some of the other wording in CWG motion 11; such wording has consequently not been applied.

CWG motion 14

After consulting with CWG, added the missing definition for "usable in constant expressions" as applied to objects and references.

CWG motion 15

Removed now-unused grammar production default-template-argument.

CWG motion 15 and CWG motion 4

CWG motion 4 adds new uses of the grammar production qualified-concept-name that CWG motion 15 removes. These have been updated to instead refer to the new production type-constraint, and the normative wording of CWG motion 4 has been rewritten to use the new term "immediately-declared constraint", both of which were introduced by CWG motion 15.

LWG motion 11

Change 10 included an editing instruction to make matching changes elsewhere in the draft. There does not appear to be any "elsewhere" to make said changes. This editing instruction was ignored.

LWG motion 13 and LWG motion 26

The specification of bind_front was simplified by replacing DECAY_UNWRAP a use of the new unwrap_ref_decay_t alias template introduced by LWG motion 13.

LWG motion 25

The wording paper contained an unmarked modification of [std.iterator.tags], replacing "the most specific category tag" with "a category tag". After consulting with the paper authors, the change was intentional, and the corresponding edit has been applied despite not being marked up.

LWG motion 25 and CWG motion 4

CWG motion 4 removes a grammar production from requires-clauses, but LWG motion 25 adds new uses of said grammar production. Those uses are all of the form

requires { { expr } -> Same<T>&; }

After consultation with LWG, these uses have been rewritten as

requires { { expr } -> Same<T&>; }

which is believed to both correctly reflect the intent and not change the meaning in practice of any of the uses introduced by LWG motion 25.

Additionally, CWG motion 4 contains an instruction to replace all constructs of the form

requires { E; requires Concept<decltype((E)), Args>; }

with the simpler (but now equivalent)

requires { { E } -> Concept<Args>; }

throughout [concepts]. However, LWG motion 25 adds many more instances of the former pattern throughout several other clauses. All such instances throughout the working draft have been replaced.

LWG motion 26

A feature test macro name __cpp_lib_bind_front was recommended by the paper, but no wording changes were included to add said feature test macro to the working draft's table of feature test macros. The macro has been added to the table anyway.

Section label changes

Several section labels introduced by the motions papers have been modified to match our style guide. In addition to the section labels affected by the above motions, the following changes have been made:

[string.op+=] has been renamed to [string.op.append].
[string.op+] has been renamed to [string.op.plus].

[re.regex.nmswap] was the only subclause in its parent [re.regex.nonmemb]. The former heading has been removed, leaving the old content directly in [re.regex.nonmemb].

[istream::sentry], [ostream::sentry], [ios::failure], [ios::fmtflatgs], [ios::iostate], [ios::openmode], [ios::seekdir], and [ios::Init] have been renamed, replacing the "::" with a "." and converting "Init" to lowercase.

See the appendix "Cross-references from ISO C++ 2017" in the working draft for a full list of sectoin label changes since C++17.

Minor editorial fixes

A log of editorial fixes made to the working draft since N4778 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 e00fef979f7c0da235351f898010658f1f074b87
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Thu Dec 6 21:48:24 2018 -0400

    [iterator.synopsis] Add reference to [alg.req.sortable]

commit 9d81b4fde6dfe2b28737a79ed39f92ef9a0ee030
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Sun Dec 2 06:07:03 2018 +0100

    [view.interface] Use "inherits"/"derives" consistently.

commit 358fcdc442fd620f00673081223e4313cf0af499
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 27 20:38:28 2018 +0100

    [cpp.subst] Introduce grammar non-terminal 'va-opt-replacement'

    to avoid repeated quotes of the token sequence.

commit 4425a120b9a60d3c9e6aa3f1feb553082a9f1fbd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Dec 7 21:37:02 2018 +0100

    [iterator.concepts.readable] Turn parenthesized explanation into a note.

commit de1093907b6deb7455b866d5c47a6a1a026a90a1
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Dec 7 22:27:20 2018 +0100

    [temp.func.order] Adjust example to rules in [temp.deduct.partial].

commit 07901a9f724b019c0b6634a9a0c39e5dd5208324
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Dec 1 17:31:53 2018 +0100

    [input.output] Avoid colons in stable labels

commit 6e5dba392d19241efed299c91670cc31fcbe3826
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Dec 7 22:05:50 2018 +0000

    [template.mask.array.overview] Fix nesting of parentheses; reflow source

commit 36998eae97c6876c1f67dc0425c42555dbf0cea5
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Fri Dec 7 22:02:49 2018 +0000

    [iterator.concept.iterator] Remove stray, mismatched parenthesis

commit a5603f0cf1b35097a9892d9627eb03dc5cc3e154
Author: JF Bastien <github@jfbastien.com>
Date:   Fri Dec 7 13:48:16 2018 -0800

    [basic.fundamental] Remove a footnote that was describing a particular possible manifestation of undefined behaviour

    The note was problematic, as (by omission) it suggested that such behaviour might not be true for other types.

commit 8035cdb6de85ff0f541b3fc78f747d060ea50ef6
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Fri Dec 7 17:43:10 2018 -0400

    [iterator.traits] Present concept requirements consistently (#2566)

commit a4366dc5bf59d826a9b1aee82d317636a6239e9a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Dec 7 21:51:55 2018 +0100

    [iosfwd.syn] Change char_traits from 'class' to 'struct'. (#2570)

commit 888da0bf8d0a07048dab8098197c7a326eda9e19
Author: Thomas Köppe <tkoeppe@google.com>
Date:   Wed Dec 5 01:46:53 2018 +0000

    [algorithms] Add missing closing delimiters

commit 14db6ec65b7c3dbd9da2e112e09015bdcba3501f
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Dec 4 23:01:27 2018 +0100

    [atomics.types.operations]/20 Replace "E.g." at start of sentence with "For example,". (#2558)

commit aadf7684f1e6c2fe1fa15ffa0cf2ee45b5e56cd7
Author: Eelis <github.com@contacts.eelis.net>
Date:   Mon Dec 3 22:54:57 2018 +0100

    [re.grammar] Add missing closing parentheses. (#2552)

commit 4fc0a426f700c03aeea5b5efe040af9f3c977df8
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Dec 1 14:32:10 2018 +0100

    [utilities] Harmonize 'For T in Types' phrasing. (#2543)

    No '...' for a pack expansion should appear after 'Types', and no index on 'T'.

commit 334e9f546dcb786801b9bef428f7c0fb94bee79b
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Dec 1 03:34:10 2018 +0100

    [dcl.init] Clarify standard conversions for built-in types (#2534)

commit e6cd48f407698d882a08f2bc5e3aad8ea13b495e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Dec 1 03:32:38 2018 +0100

    [over.best.ics] Clarify ambiguous conversion sequence (#2532)

commit 89f5b1dfbabf0b5755f4e516a3be9b1e2b78ffc2
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 27 22:01:21 2018 +0100

    [over.ics.ref] Use 'implicit conversion sequence',

    not 'standard conversion sequence' where applicable.

commit af1191e9f5a0ab93214849fbfed77f75b2da673b
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 27 22:48:48 2018 +0100

    [class.bit] Bit-fields of sufficient width can store any value of an enumeration,

    not just values of enumerators.

commit 5ef7f9cbb248402f6c74f01acba87292efb0b561
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 27 22:19:14 2018 +0100

    [dcl.init.aggr] Resolve grammar confusion around arrays of unknown bound

commit 197db8c1fd3e57bc5c622a5e0ea9ac3f0c974e85
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 28 08:04:34 2018 +0100

    [dcl.inline,dcl.align] Strike redundant 'definition'

    in phrases reading 'declaration or definition',
    because a definition is also a declaration.

commit ad6385ac9730786006205d6fdca92e1d45aea13a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 27 23:16:26 2018 +0100

    [dcl.spec] Harmonize phrasing of restrictions on decl-specifiers

commit f38c14be051d91bc6492d774d45a325154b7f307
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Nov 27 23:28:09 2018 +0100

    [depr.locale.category] Don't parenthesize reference after 'in'. (#2526)

commit 3ba8b56c0ffa84cf8fe7bf78234fb8694d4d1498
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Tue Nov 27 12:10:20 2018 -0800

    [atomics.types.generic] Remove note that tries to encourage
    implementations to use the same size for atomic<T> as for T.

    It's not appropriate for a note to contain "should" or implementation
    encouragement of this kind. It's also bad advice.

commit e23cbb5b79397dd07c4c7adbea35b90075c78268
Author: Sergey Zubkov <cubbi@cubbi.com>
Date:   Tue Nov 27 03:11:37 2018 -0500

    [allocator.uses.construction] the argument name is alloc, not allocator

commit 41a8baa9f739154f2b8c3f6b9e8339ede031195b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 26 19:21:14 2018 -0800

    [unord.req] Undo change accidentally made in wrong table cell.

    The intended table cell was already correctly updated.

commit 9a720cd36a749057061b245772fb243678876b13
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 11 20:53:10 2018 +0200

    [dcl.enum] Merge duplicate normative paragraphs on redeclarations.

    Also introduce the grammar non-terminal enum-head-name
    to simplify the description.

commit 5e37f798131c38a4c609af2b8c70ce0b7a6f102f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Apr 2 21:50:03 2018 +0200

    [stmt.while] Simplify rewrite rule.

commit 84d93372e79b218701611ae8599cf885fcaf13b1
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 12:45:01 2018 +0100

    [string.classes] Avoid special characters in stable labels

    and rename [string.comparison] to [string.cmp] per convention

commit 05f51e0963f8f7e9186062d97306df128ee1fdcc
Author: Casey Carter <Casey@Carter.net>
Date:   Mon Nov 26 13:06:53 2018 -0800

    [iterator.operations] Simplify distance requirements; change to expects

commit 90bb6f50af1d0181a158552399739cdeaf0b6ad7
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Oct 17 14:09:22 2018 -0700

    [iterator.operations] Simplify advance requirements; change to expects

commit 12589ca08e44ad3c6c215998ccdd92af3c02ca3b
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Oct 17 14:08:27 2018 -0700

    [iterator.operations] advance does not decrement by a negative count

commit 5f757d356d241d4fa6313f7375a275a59958358d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 18 20:20:05 2018 +0200

    [dcl.init.aggr] Add example for anonymous union

    initialized by a designated-initializer-list.

commit b7aa3fe5f4e774edd8fe6239e707e0e0b1b44b41
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 1 10:44:12 2018 +0100

    [numeric.ops] Move [numerics.defns] to the point-of-use.

commit 63d15762f452fcb4787b2ca7896d9bbfde7de3ad
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 12:36:20 2018 +0100

    [alg.find.end] and [alg.search] should not use "subsequence"

commit 0f16b26b5a06b8a3cd0596ead96c54146d7e3178
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Nov 7 14:16:30 2018 -0800

    [over.ics.user] Mark "user-defined conversion sequence" as a term of art

commit 7e32ffd6c031771bb3a7568eb40ebe3d6b3417aa
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 15 19:42:52 2018 +0100

    [over.best.ics] Turn 'such as' list into a note

commit 915c784c12ec4570974a67e98d0086e1933d0733
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 23:42:17 2018 +0100

    [iterators] Shorten labels for iterator concepts

commit 3768294e5bac0fac1b40aee14c8615f6c3d2f08c
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 23:35:13 2018 +0100

    [iterators] Shorten stable labels for algorithm requirements

commit fc0c0db579234fba09f87ee3fa7053f699066c2f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 11:59:42 2018 +0100

    [ranges] Shorten and adjust stable labels

commit fb5d52d59d6823d0e03b2e7ca85d76f43402efa8
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 13:22:09 2018 +0100

    [structure.summary] Add missing templated entities

commit 944a64419594b455759168e089c5cd075ea848be
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 13:33:33 2018 +0100

    [func.bind_front] Use unwrap_ref_decay_t

commit 12c55fcdff724855444d3e3ddfcc24ad93d9dd6a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 13:54:46 2018 +0100

    [dcl.attr.contract.check] Remove redundant statement that violation handler is implementation-defined

commit ae11d65ac5df8a7e605f07bc1d36ed584002fd15
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 14:01:32 2018 +0100

    [expr] Fix cross-references for 'composite pointer type'

    to refer to [expr.type], not [expr.prop].

commit 42f956e7e80a4dfd81608b366e4f7813332d7dc0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 26 18:31:42 2018 +0100

    [temp] Use 'deduced as' instead of 'deduced to'

    in comments explaining examples

commit 602a81d2d88ec98fef3d4feeaf5b24079e1e2110
Author: S. B. Tam <cpplearner@outlook.com>
Date:   Fri Oct 12 17:35:23 2018 +0800

    [class.mem] Add opaque-enum-declaration to member-declaration

commit 8ddcba4252b4a45194b8fdf4ebd2a439cb5e5147
Author: Kazutoshi SATODA <k_satoda@f2.dion.ne.jp>
Date:   Tue Oct 30 08:58:23 2018 +0900

    [conv.lval] Improve a bit more the note about std::nullptr_t case

    - "read the object" -> "access the object"
      The "read" was derived from the rule at [intro.execution], but it
      didn't fit well here.
    - "the object" -> "the object to which the glvalue refers"
      Make it clear what "the object" refers to.

    https://github.com/cplusplus/draft/pull/2372#pullrequestreview-169248002

commit 0b35a4688d09a385488f0d23c296afa622d7b02e
Author: Kazutoshi SATODA <k_satoda@f2.dion.ne.jp>
Date:   Thu Oct 25 02:59:31 2018 +0900

    [conv.lval] Improve the note about std::nullptr_t case

    The meaning of "fetched from memory" is vague, and the two uses of term
    "access" [defns.access] are inappropreate here because
      - it causes undefined behavior to access an inactive member of a
        union, based on the rule of out-of-lifetime object [basic.life]:
        > The program has undefined behavior if:
        >   - the glvalue is used to access the object, or
      - it implies reading the referenced object of std::nullptr_t,
        which is defined to be a side effect for volatile-qualified case.
        [intro.execution]
        > Reading an object designated by a volatile glvalue, ... are all
        > side effects, ...

commit a694c9131618fd71b65faa8022cd6210dfa760f7
Author: Eelis van der Weegen <eelis@eelis.net>
Date:   Sun Nov 11 21:31:03 2018 +0100

    [expr.static.cast] Say 'lvalue denoting ...' instead of 'lvalue to ...'

commit 2e054057e5a0db3e5563dd05286b04b55c3a3b87
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 21 12:02:41 2018 +0100

    [basic.stc.dynamic.allocation] Fix cross-reference for get_new_handler

commit d4439240b74cf044bc7626ed364eeba291ca79dd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 9 21:06:30 2018 +0200

    [basic.type.qualifier] Clarify the definitions of const/volatile object

commit d348800a5b0c2e594cf5e0b6e22404d52731e263
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 11 09:47:10 2018 +0200

    [dcl.spec.auto] Return type deduction should refer to templated entity

commit 2aa12aea978a0a79b725ce7552a1803c282a1c93
Author: Géry Ogam <gery.ogam@gmail.com>
Date:   Mon Nov 26 10:28:28 2018 +0100

    [basic.lval] Correct an article in the prvalue definition

    An operator can have multiple operands.

commit e63542071ba4acee0adb82bd1221fdb0158a4eef
Author: Casey Carter <Casey@Carter.net>
Date:   Sat Nov 17 16:29:38 2018 -0800

    [cmp.categories,time.cal] Change "explicit constexpr" to "constexpr explicit"

    Per discussion in #2371.

commit e6bbbbf62cddcbc6cea43a7589cfbcc48817b74b
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 26 00:27:52 2018 -0800

    [unord.req] Clarify what r1 is and remove unnecessary variable e.

commit 38f9dccc5abe1d53e28249bd09be79a25d9b2427
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Fri Nov 16 02:27:56 2018 -0800

    [unord.req] Use bullets for the list of denoting variables.

commit e6b8936788decfb6c29ea527f1195ec3679a1195
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Nov 26 00:17:04 2018 -0800

    [func.def] Simplify "references to functions and references to objects"
    to simply "references".

commit dafbb9445f11ad231abbf72028c29b6dd77c9334
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 19 09:44:01 2018 +0100

    [func.not_fn,func.bind_front] Some clarifications

    'a target object' -> 'the target object'
    render 'initializer' as a grammar term and add a cross-reference
    to dcl.init
    add cross-references to expr.call

commit 40fc57e9efdf5159a981cd87c9d8d765fd3f29ae
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 23:11:27 2018 -0800

    [iterators] Remove bogus "shall"s is "Expects" elements.

commit 9110f52c0e9550472b55845ba1c063333a94ad17
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 21:46:09 2018 -0800

    [range] [iterators] Replace uses of { I } -> Same<T>& requirement.

    This form of requirement was made ill-formed by P1084R2. In its place,
    use { I } -> Same<T&>, after discussion on the lib reflector.

commit 00da6c53f744a1781a1ce23cd3026af9d87f1f8a
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 21:42:11 2018 -0800

    [incrementable.traits] [readable.traits] Remove redundant remove_const_t
    on type that cannot be const-qualified.

commit e57b65067a5c73e20f2287b0ca0782d5d7d0333a
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 23 22:20:47 2018 -0800

    [std.iterator.tags] Replace "the most specific category tag" with "a
    category tag".

    The new text was present in the Ranges wording, but with no insertion /
    deletion markup to indicate that an edit was to be performed. However,
    consultation with LWG revealed that this was an intentional edit missing
    markup.

commit 92326665186c9c4e29f058f5b8d0ae5ea9814465
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Nov 17 15:29:01 2018 +0100

    [pairs.spec,tuple.creation] Simplify description

    by inlining unwrap_ref_decay_t into its point of use.

commit d9521a91ab07548e888bd5be386822c0148a111f
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 18:44:37 2018 -0800

    [iostream.forward.overview] Convert incomplete wording with no normative
    effect to an example.

commit 6260a047c0f3120a0570e6418f201294e6442664
Author: Dawn Perchik <dperchik@embarcadero.com>
Date:   Thu Nov 22 23:58:55 2018 -0800

    [diff.cpp17.input.output] Add ill-formed comment and a still well-formed use.

commit a0a637a0b2797b2809982836c9330052a8465172
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 01:29:58 2018 -0800

    [expr.prim.req.compound] Replace note that restates what
    'immediately-declared constraint' means with an example.

commit 27797625e16a95b8946a353b09a86544c411ce61
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 01:08:30 2018 -0800

    [temp.param] Remove unused grammar production default-template-argument.

commit 9b525539f0c7bf734be8e01db082fca775dbd028
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sun Nov 25 00:52:55 2018 -0800

    [dcl.type.simple] Factor out decltype(e) wording into its own subclause.

commit 4cc61d46edce136f5dfaeeee671ea58039b032e2
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 23 19:55:37 2018 -0800

    [expr.prim.req.compound] Resolve conflict between P1084R2 and P1141R2.

    Replace /qualified-concept-name/ with /type-constraint/ in grammar
    for /return-type-requirement/, and rewrite the new bullet for
    /return-type-requirement/ added in P1084R2 to use the term
    immediately-declared constraint introduced in P1141R2.

commit d4d65994bcf692c472cee2ed83db34e4c94266e6
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 24 23:40:25 2018 -0800

    [expr.const] Remove redundant bullet from definition of manifestly
    constant-evaluated. Constexpr variables are always usable in constant
    expressions.

commit e201f3325d8a91319c37a702e50d8032759fd822
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 24 23:37:02 2018 -0800

    [expr.const] Factor out some commonality from 'manifestly
    constant-evaluated' and 'potentially constant evaluated'.

commit e58439bce8af85e6569328272c2cfb73f5fc44d6
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Sat Nov 24 23:13:58 2018 -0800

    [expr.const] Add missing definition of 'usable in constant expressions'
    for (sub)objects and reference members.

commit b4eec9d65bcd54430c02ac7e66c88e63360801e6
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Nov 14 23:45:01 2018 +0100

    [c.mb.wcs] The parameter is called 's', not 'buf'

commit f892418bf423d6495beaf75093db3dd97aff2d14
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 23 21:26:05 2018 -0800

    [gram] Remove now-incorrect claim that a typedef-name naming a class is
    a class-name.

commit 8b70fdad014640772691057ada5b528bc8724b12
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Nov 12 03:10:20 2018 +0100

    [expr,class,temp] Remove vestigious references

    to pseudo-destructor-name and the removed section [expr.pseudo].

    Add xrefdelta entry for removed section.

commit fb22bbd60aba1f3aaf9288ab08a7feeb8e4c0101
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Nov 23 19:51:28 2018 -0800

    [expr.prim.req.compound] Change "is" to "has a" when refering to grammar terms.

commit 9bcfe7de3dd5bd4ad429011e169fca583bfa30b0
Author: Eelis <github.com@contacts.eelis.net>
Date:   Tue Nov 20 23:16:11 2018 +0100

    [dcl.fct] Add missing period after last sentence in example. (#2494)

commit 12935b8549c0412f528b33b7795a19cda7ae8dd6
Author: Arthur O'Dwyer <arthur.j.odwyer@gmail.com>
Date:   Tue Nov 6 02:03:15 2018 -0500

    [class.copy.assign] Use Oxford comma.

    Also convert some text font spaces into tcode spaces.

commit 9437d29c92b8c2e4e779acaa2677e2cbb8800414
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 6 03:37:18 2018 +0100

    [thread] Remove class name repeated in subheadings (#2368)

commit 8ae6a8fbd5e0b19e0c2fad3598c3693b72081606
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Nov 6 03:36:58 2018 +0100

    [input.output] Remove class name repeated in subheadings (#2366)

commit 96028f0000bbe2709bcdefe0fe3edc24862529a7
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Oct 31 04:21:52 2018 -0700

    [iterator.requirements.general] Operations satisfy requirements, not operations (#2375)

    Drive-by: change "satisfy .... requirements" to "meet ... requirements".

commit a43c2b30d71827325d8fdfbbd1488c570993adb7
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Oct 19 15:17:52 2018 +0200

    [localization] Remove class name repeated in subheadings (#2364)

commit 9405969f396d371284945904b534bd3f3e029d47
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Oct 18 20:39:54 2018 +0200

    [numerics] Remove class name repeated in subheadings (#2362)

commit 4afc80a9ab5b78cb3c1fe70495e162d40f427116
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Oct 17 02:19:26 2018 -0700

    [output.iterators] Remove misleading italics from note (#2360)

    Since LWG asked me to remove these from P0896's OutputIterator, they probably don't belong in Cpp17OutputIterator either.

commit 853f6bfc029f4d290c8a31da14f4282ee298cdc5
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Oct 15 16:10:00 2018 +0200

    [iterators] Remove class name repeated in subheadings (#2358)

commit 3a6d922f5ef5c3c77cfe74e39563879698716768
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 13 15:07:28 2018 +0200

    [re] Remove class name repeated in subheadings (#2356)

commit d0bb9916b779f6b113294ce9387063cad2f4b465
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Oct 13 10:45:05 2018 +0200

    [utilities] Remove class name repeated in subheadings (#2355)

commit 506ec70eab720e757555be0059c5371ff4117fba
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Oct 10 23:35:18 2018 +0200

    [class.this] Turn redundant statement on cv-qualified constructors/destructors
    into a note.

commit 7c0e7fd6396d5509027c390d9557f9642d30db42
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed Oct 10 15:06:10 2018 +0100

    [cpp.cond] Fix "carries_depencency" typo in table

commit e8fee95850cc5a68ea09fb29f4e50c28632ed348
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Oct 9 23:24:28 2018 +0200

    [basic.types] Clarify that 'value representation' does not depend on the value. (#2246)