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

Richard Smith (editor) (Google Inc)
Thomas Köppe (co-editor) (Google DeepMind)
Jens Maurer (co-editor)
Dawn Perchik (co-editor) (Bright Side Computing, LLC)


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

Fixed missing application of a portion of P1032R1, originally applied by 2018-11 LWG Motion 11.

P1032R1 section 10 instructs that a set of changes be systematically applied to all char_traits specializations. As part of the same set of motions, P0482R6 (2018-11 CWG Motion 11) added two new char_traits specializations. The intent was for P1032R1 to also apply to the new specializations, assuming both motions passed (which they did).

The application of P1032R1 section 10 to the char_traits specializations added by P0482R6 was missed by editorial oversight, which is repaired in N4820.

Notable editorial changes

Changes to section labels

To increase stability of references to the standard, labels are now also shown for tables and figures, in addition to the existing labels for sections.

The editors hope that the use of stable table labels enables papers to say which tables the changes the papers describe affect increases clarity.

Minor editorial fixes

A log of editorial fixes made to the working draft since N4810 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 62c2f858b7c954750069f3514e2de2f58464df65
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Mar 18 14:06:16 2019 -0700

    [lex.header] Fix note describing where a header-name token is formed to
    match the changes applied by P1103R3.

commit fccd9773064e596c4efa58b408bea0615623ff78
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Mar 20 17:32:25 2019 -0700

    [limits.syn,numeric.limits] Declare partial specializations in header synopsis, not class synopsis

    Moves the declarations of the partial specializations of numeric_limits into the header synopsis, out of the class template synopsis.

commit b5ee2beccbe6c39d90768142e564ac749e45f47f
Author: Krystian <sdkrystian@gmail.com>
Date:   Thu Mar 28 18:21:23 2019 -0400

    [temp.expl.spec] Fix grammar (add missing article)

    Added "an" before "explicit" to make the sentence grammatically correct.

commit d45c031e2b504cf5b609595751ae22e7122dd4e3
Author: Akira Takahashi <faithandbrave@gmail.com>
Date:   Thu Apr 11 19:54:15 2019 +0900

    [memory.syn] Add declaration of primary template "atomic"

    Partial specializations are declared thereafter.

commit f64094025dbbec5daa268f1b5a98f6de37c4e2c2
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Apr 11 12:55:18 2019 +0200

    [equal.range] Fix formatting of 'Returns' clause. (#2823)

commit f90f4ea7ba38fef6675c0900d93543dded8c7260
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Thu Apr 11 06:56:42 2019 -0400

    [iterator.traits] Remove redundant required expression in cpp17-input-iterator (#2817)

commit 7c1c2611eac4b970a98bf3dd675daa19f9a7fd5c
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Apr 15 15:14:43 2019 -0700

    [expr.ass] Move higher-precedence productions to before the assignment
    production in the grammar, to be consistent with how we order these
    productions throughout [expr].

commit 4c21c0c2565effa6c1e672b09540bd6533c02f15
Author: Eelis <github.com@contacts.eelis.net>
Date:   Sat Apr 20 01:08:09 2019 +0200

    [time.cal.ym.nonmembers] Add missing \pnum for Complexity element. (#2836)

commit fdd3787e0cf76b9c6a3461a32789cf1ffcf9c39d
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Fri Apr 26 16:27:52 2019 -0700

    [temp.inst] Fix bogus double-spacing after colon in example.

commit 40c9aa75e8f32e8bab935c04459bf8f648aa89b0
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Apr 29 10:52:32 2019 -0700

    [atomics.types.operations] Fix typo "indeteminate"

    Fixes #2849

commit 569f41ce7410becceaf5537c148b1bc420139bb0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Apr 30 11:21:10 2019 +0200

    [macros] Adjust \tref to include the word 'Table' in the link text. (#2851)

commit 0bae532004c6117b2111d6622d85bd13577a4aaa
Author: Random Internet Cat <jason.e.cobb@gmail.com>
Date:   Tue Apr 30 14:57:04 2019 -0400

    [basic.life] Remove erroneous comma in description of treatment of storage out-of-lifetime (#2842)

commit 0f666fa7b5c5a1f869ca0e3bb2506389546a45bd
Author: Natsu <chino@hotococoa.moe>
Date:   Wed May 1 03:20:56 2019 +0800

    [cstdio.syn] Rename parameter of function "rename" (#2840)

    The second parameter of function "rename" is called "new", which is a keyword in C++.

commit 8b3480987ee9962cb4191b9230fd9ff6083a273d
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Tue Apr 30 15:23:12 2019 -0400

    [alg.unique] Remove <> after ranges::equal_to (#2826)

commit 65194f717a16bb57da02e7bd1aea02c835dc89d1
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Tue Apr 30 15:33:17 2019 -0400

    [algorithms.requirements] Say 'below to account for clause move (#2812)

commit 27e371dae3fc6484cc2f1bf65d06f9578efd3c32
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Tue Apr 30 16:00:01 2019 -0400

    [iterator.cust] Introduce expression-equivalent list as in [ranges]. (#2845)

commit 205f6c7dff00a5e8c41bc454b0ffe5ac610853ae
Author: Glen Fernandes <glen.fernandes@gmail.com>
Date:   Wed May 1 06:05:42 2019 +1000

    [pointer.conversion] Reorder overloads of to_address (#2814)


commit da5050ce1092b76ba93699bfd0d6424cd984830a
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Apr 30 13:10:02 2019 -0700

    [coroutine.traits.primary] Hyphenate "program-defined" (#2810)

commit f3d90566f3ca7798fec4fe36c425d03d7dfd8e0f
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed May 1 07:24:45 2019 +0100

    [ranges.dangling] Fix namespace of ranges::dangling (#2829)

    This fixes an editorial mistake in P1252R2; the original proposal correctly
    defined "dangling" in namespace std::ranges (see P0896R1).

commit 70f8c128e6bef2bf01373ab7c673dee318a89fd6
Author: frederick-vs-ja <de34@live.cn>
Date:   Fri May 3 05:29:59 2019 +0800

    [iterators] Add "ranges::" for "iterator_t" (#2860)

    "inserter" and "insert_iterator" are in namespace "std", so
    "ranges::iterator_t" should be used in their declarations.

commit 7ac32d9c5b134b7e899186b6df8e57aeed7253f1
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat May 4 00:57:42 2019 +0200

    [utilities,containers] Harmonize presentation of tuple_element. (#2868)

commit 2eadc8c192dc60981dffd11a1904acda9df5ad01
Author: Agustín Bergé <k@fusionfenix.com>
Date:   Sun May 5 19:34:17 2019 -0300

    [optional.ctor] Remove extra dot. (#2875)

commit e095f2d889f382f0ebfb4f16018bda55d437ed2e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun May 5 22:44:42 2019 +0200

    [expr.prim.lambda] Simplify grammar for lambda-expression.

commit 6c87900e78191d1d5d8f79d09b9f78fca83321ff
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue May 7 02:22:36 2019 +0200

    [map,multimap] Add index entries for members of value_compare. (#2861)

commit f031dfcd84ad9901a552db8241e50cee4bbd5386
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon May 13 16:08:32 2019 -0700

    [module.global] Make the note that only preprocessing directives can
    appear in the global module fragment prior to preprocessing a bit more
    obvious and prominent.

commit 32c67d4ee782903e1f051c94e68816a9e188b11f
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Sat May 18 11:24:20 2019 -0400

    [fs.path.query,fs.op.equivalent] Use 'otherwise', not 'else' (#2883)

commit 40241be416a0babfc41015be4a69ce1a9aa76358
Author: Casey Carter <Casey@Carter.net>
Date:   Tue May 21 11:21:54 2019 -0700

    [concept.boolean] Simplify first requirement (#2888)

    See P1084 and P0896.

commit 1b7c624e0339d838d8c91253262e0379d22506a5
Author: frederick-vs-ja <de34@live.cn>
Date:   Wed May 22 02:24:07 2019 +0800

    [view.interface] Drop unused exposition-only templates (#2881)

commit 5c1728b61a0a66fe7f1818b399f742274fce36ed
Author: languagelawyer <38548419+languagelawyer@users.noreply.github.com>
Date:   Fri May 24 01:26:25 2019 +0300

    [dcl.init.aggr] Aggregates can have inherited non-public data members (#2892)

commit 665a94500cb78d4b6d2795d396b51df2054094a1
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri May 24 20:24:47 2019 +0200

    [expr.alignof,expr.unary.noexcept] Reorder to after [expr.sizeof]. (#2862)

commit 3526e99dc1257aa6fce561dc2dc020068982b42f
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Fri May 24 20:27:24 2019 +0100

    [fs.rec.dir.itr.members] Change \ensures to \remarks for pop() (#2830)

commit 68c7072ddb7d5ba66aca6d25a054c0eca8c01775
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri May 24 21:31:22 2019 +0200

    [views.span] Move description of iterators to [span.iterators]. (#2864)

commit aa9fe1fc99da36602e2600ac16636fa7b504b4e5
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri May 24 22:15:00 2019 +0200

    [time.cal.ymwd.nonmembers] Fix typo in parameter names. (#2895)

commit 8cef0f3c119459670335a4a7846344b38ac51918
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon May 27 09:04:34 2019 +0200

    [char.traits.specializations.char8.t] Make all members constexpr. (#2833)

    Fix missed application of P1032R1 to the result of applying P0482R6;
    both papers were moved at the 2018-11 meeting.

commit 127bb3653647a350836bb99b4fdc16716de3957a
Author: Alisdair Meredith <alisdairm@me.com>
Date:   Tue May 28 16:02:20 2019 -0400

    [except.terminate] thread has move-assignment, not copy (#2903)

    The copy-assignment operator for std::thread is deleted, but the
    move-assignment operator documents a call to std::terminate.

commit f788e132dbfe4252f2852b6123d0bac4674e7dd5
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue May 28 22:28:49 2019 +0200

    [allocator.adaptor.syn] Avoid confusing term 'memory resource'. (#2904)

commit b2e16a61cdbbf177fd8f9e868c9d611d4d9fa50f
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed May 29 20:07:18 2019 +0100

    [dcl.mptr] Add \pnum to note already in a separate paragraph (#2907)

commit 5dce3660fdf06d4c63efeffc329d9a9436c51ea5
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed May 29 21:54:28 2019 +0200

    [time.zone.info] Add missing 'Returns' items. (#2901)

    Also add a missing 'Effects' item.

commit b9f2d303359502de27d399b13e5de41432ce6909
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed May 29 22:33:01 2019 +0200

    [stmt.stmt,basic.scope.block] Remove normative redundancy.

commit 871b9e1d91ad939afe46b66e6139a527e773200e
Author: Casey Carter <Casey@Carter.net>
Date:   Thu May 30 11:29:17 2019 -0700

    [coroutine.handle,coroutine.handle.export.import] "static" before "constexpr" (#2811)

commit 899cce08197bb3311e6942dee134cee470625342
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Jun 1 14:23:54 2019 +0200

    [except.uncaught] Clarify duration of uncaught exception.

commit 5df26e149d1cf89c54614fe5f837eef7c6104208
Author: Richard Smith <richard@metafoo.co.uk>
Date:   Mon Jun 3 12:28:49 2019 -0700

    [basic.def.odr] Make case consistent in first word of bullets.

commit a61da77b992f7346bb559ba59c5f53a7df90a569
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Jun 4 14:07:18 2019 -0700

    [dcl.fct.def.default] Add missing comma

commit 5b8ed33fdb283364a6a5e7b9572f3e5e16650f40
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Nov 30 23:42:08 2017 +0100

    [language.support, utilities] Condense description of exception classes

commit b6f44de194a2e5702d9658c0e5ed1a8f4f647ece
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Jun 5 22:39:40 2019 +0200

    [module.interface] Use 'namespace-definition',

    not the undefined term 'namespace-declaration'.

commit 04e32a6e79d2a51eeb930e89356dfda27bed841d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Jun 7 01:56:40 2019 +0200

    [unord.req] Consistently use 'Average case x, worst case y.' (#2921)

    Changed from sometimes having 'Worst case' start a separate sentence.

commit 7830d39615bf46563303156ca5f6609c02dd5820
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Tue Jun 11 18:23:12 2019 +0100

    [algorithms.parallel.exec],[alg.set.operations],[alg.min.max],[alg.c.library] remove empty parens (#2925)

    When referring to a function, use its name, not a call expression.

commit 12a28a2eb9f182794fdaf25f1ee5a24e8fa71f1d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Jun 11 23:02:46 2019 +0200

    [time.cal.ymwdlast.members] Move statement on class properties (#2927)

    to [time.cal.ymwdlast.overview], consistent with
    neighboring similar subclauses.

commit 18e005d77a64c930252c2f9f809dc2b40124f7f1
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Jun 11 14:54:54 2019 -0700

    [alg.random.sample] Remove redundant requirement (#2798)

    [rand.req.urng]/1 requires that UniformRandomBitGenerator
    model UnsignedIntegral. [alg.random.sample]/1.5 requires Distance
    to be an integer type. Any integral type is convertible to any other
    integral type.

commit daa9a7d0937feb54bc9389096324e5ba36df2f9e
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Tue May 28 08:15:29 2019 +0100

    [fs.path.append] Fix examples to show correct results for Windows

    Also correct the fact that the results were shown as string literals,
    not paths, and that the examples for path::operator/=(const path&) were
    actually using the non-member operator/(const path&, const path&)

    Also line up the comments to the 32nd column.

commit 85f634a82a6f23518245ed251690df52b3555c38
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Thu Mar 28 09:20:53 2019 +0000

    [dcl.type.elab] Mix struct/class in example

    Extend the example to show that the choice of 'class' or 'struct' in an
    elaborated-type-name referring to a class is not significant.

commit a0f56d5ceb8aeb45549b173164302ef263f0d3c4
Author: Casey Carter <Casey@Carter.net>
Date:   Wed Jun 12 15:46:55 2019 -0700

    [istream.sentry] Remove unreferenced private typedef-name traits_type (#2818)

commit a3eec72ed7a7cd942081b5d5a90737614c67d057
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Apr 10 23:53:39 2019 +0200

    [basic.lookup.elab] Clarify example to refer to injected-class-name

commit 99ec26cfca252dd5f8843ccf54ded17ed95b2436
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon Apr 29 22:34:58 2019 +0200

    [dcl.stc,dcl.type.cv] Avoid redundancy when specifying 'mutable'.

commit 506b67005b66af3afbc6edd7bedc772750d0710b
Author: Krystian Stasiowski <sdkrystian@gmail.com>
Date:   Wed Jun 12 18:57:20 2019 -0400

    [namespace.def] Remove redundant mention of "global scope".

    The global scope is a namespace scope.

commit 76a0595989a140d142efc236afbb66d1b6e975b6
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri May 3 01:10:13 2019 +0200

    [expr.call,expr.reinterpret.cast] Adjust cross-references for
    type violations in function calls.

commit dd7b5190279d29f09db4e3009d37398ed6f24de3
Author: Johel Ernesto Guerrero Peña <johelegp@gmail.com>
Date:   Fri May 3 14:03:19 2019 -0400

    [string.view.template][string.view.iterators] Move requirements to a more appropriate place

commit 490d0dad072759b448b097eff8fb7b2c304573cd
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sun May 5 22:30:29 2019 +0200

    [dcl.dcl,temp.spec] Move normative statements on restrictions for
    explicit specializations and explicit instantiations
    to [temp.spec] and its subsections.

commit 8845c5c95a62ab7a196016ff484412ce826d2725
Author: Jason Cobb <jason.e.cobb@gmail.com>
Date:   Fri May 10 23:07:40 2019 -0400

    [dcl.dcl]/11 Storage from object definitions has proper alignment

commit 373176cfe330ab22a8f6a4273da4817ab9d17438
Author: Casey Carter <Casey@Carter.net>
Date:   Wed May 22 07:44:42 2019 -0700

    [concept.swappable] Strike array poison pill swap overload

    Since lookup is only performed when at least one argument has class or enumeration type, template argument deduction can never succeed for the poisin pill overload with two parameters of reference-to-array type; it can be struck with no normative impact.

commit 8eff9b95eeedd9fb08816c51f2bb4e4c151de40f
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue May 28 08:55:10 2019 +0200

    [expr.sizeof,expr.alignof,expr.unary.noexcept] Clarify value category.

    Also remove the undefined term 'constant' and
    instead add a note pointing to [expr.const].

commit 45d9fae43d97355735d81a839a5dbb7abec60aa4
Author: Jonathan Wakely <cxx@kayari.org>
Date:   Wed May 29 09:48:09 2019 +0100

    [basic.compound] Replace four refs with a single one to [dcl.meaning]

commit 2c5066bde3eb4300a4f190b491a89400b827334d
Author: Jason Cobb <jason.e.cobb@gmail.com>
Date:   Mon Jun 3 12:26:31 2019 -0400

    [over.call.object] Fix surrogate calls with regards to cv-qualifiers

    Standardizes existing practice. All of GCC, Clang, MSVC, ICC in pedantic mode already behave as if all of these changes were made.

commit a02993d3ca83b88140eb5b03f5798ba2f9a77203
Author: Casey Carter <Casey@Carter.net>
Date:   Tue Jun 4 18:28:48 2019 -0700

    [range.semi.wrap] Rename "semiregular" to "semiregular-box"

    ...to avoid confusion with the concept `Semiregular`. Update the uses in [range.single.view, range.filter.view,range.transform.view], and add a reference to [range.single.view] which now precedes [range.semi.wrap] since the "range factories" were pulled out into a separate subclause before the "range adaptors."

commit 042e0356bced518954c5ca1c9425226dbeb8b64a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Wed Jun 5 22:44:29 2019 +0200

    [stmt.return.coroutine] Move one level up to avoid hanging paragraphs.

commit 5c5570d29e64c3c143dad6175df7a41e7cef6d3d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Jun 7 00:02:22 2019 +0200

    [expr.add] Avoid x[i] syntax when defining pointer arithmetic.

commit 7756db991e1343bb60bccf43ae825ff55713bfdb
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Fri Jun 7 00:26:34 2019 +0200

    [expr.unary.op] Use bullets to clarify the address-of operator.

    Also cover the missed case of a prvalue qualified-id.

commit c60c94398be23f2e5a407c8e3461b692c8fe508d
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Jun 11 20:24:38 2019 +0200

    [lex] Fix stray uses of 'source character set'

    where it is obvious that 'basic source character set'
    is meant.

commit 2ee3d07e93049866f6602829dd0ebf469e25f0d2
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Tue Jun 11 20:32:42 2019 +0200

    [range.split.outer] Convert trailing cross-reference to prefix style.

commit 6f9959805eb3e8e802192b0fb71dbe160ed68a06
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Sat Jul 21 16:21:40 2018 +0200

    [dcl.array] Rework description.

    Group examples with the corresponding normative statements.
    Clarify the meaning of 'array type'.
    Use 'declarator-id' instead of 'identifier'.

commit f6ad222bfafd939180c9c65f7b0116d0d340001b
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Mon May 27 09:20:57 2019 +0200

    [range.prim.size] Clarify by adding 'respectively'.

commit b3b1f637f12e2d0b71e351f5c9c3f6acd5059eaa
Author: Casey Carter <Casey@Carter.net>
Date:   Fri Jun 14 14:21:05 2019 -0700

    [library-wide] Use "model" instead of "satisfy" for semantic library concept requirements

    Consistently use "satisfy" to mean the syntactic requirements are met, and "model" to mean the semantic requirements are met.

    Updates: [structure.requirements],[customization.point.object],[res.on.requirements],[concepts], and [range.semi.wrap].

    Fixes #2591.

commit b50067fe2dec316efc24ae80ae352f33eb31c3af
Author: Casey Carter <Casey@Carter.net>
Date:   Sun Apr 14 12:36:57 2019 -0700

    [range.counted] Introduce "Counted view"

    Fixes #2825.

commit da3660306d52d7c1813b6cfae71e78851cd37831
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date:   Thu Jun 6 09:21:12 2019 +0200

    [expr.unary.op] Modernize wording for obtaining a pointer.

commit 97066177229afe6f2935da73b848254ea27a16a2
Author: Marc Mutz <marc.mutz@kdab.com>
Date:   Mon Jun 17 12:50:30 2019 +0200

    [list.erasure][forward.list.erasure] Fix missing lambda braces (#2936)

commit f8b8c257ae5bce961c0de29ed8e0ce2d88497acc
Author: Kazutoshi SATODA <k_satoda@f2.dion.ne.jp>
Date:   Sun Sep 9 00:11:36 2018 +0900

    [expr.new] Harmonize rules of constant array bounds > 0

    While "shall evaluate to a strictly positive value" is not wrong,
    "shall be greater than zero" is easier and is used in [dcl.array] to
    describe the same rule.

commit 15c8259726b565f2a9b3adacdcc85a0727841c7c
Author: Casey Carter <Casey@Carter.net>
Date:   Mon Jun 17 09:52:08 2019 -0700

    [library-wide] Use "meet" for non-concept type requirements (#2796)

    Partially addresses #1263.