2017-03-20
Richard Smith (editor) (Google Inc)
Dawn Perchik (co-editor) (Embarcadero Technologies Inc)
Thomas Köppe (co-editor) (Google DeepMind)
<cxxeditor@gmail.com>
Special thanks to the members of the editing committee for the C++17 DIS, namely Marshall Clow, Mike Miller, Ville Voutilainen, and Jeffrey Yasskin for their review of the correctness of the working paper as modified by the motions from the Kona 2017 meeting.
Special thanks also to Jonathan Wakely and Alisdair Meredith for performing edits and editorial review for several of the motions applied since N4640, and to Jens Maurer for performing many of the editorial fixes since N4640.
Thanks to all those who have submitted editorial issues and to those who have provided pull requests with fixes.
The contents of N4659 and N4660 are identical except for the cover sheet and page headings.
CWG motion 1: Core issue resolutions for 5 issues in "ready" status applied:
The other 7 issues in "ready" status from P0575R1 were applied by CWG Motion 3
CWG motion 2: Core issue resolutions for 5 issues in "tentatively ready" status applied:
for
CWG motion 3: Core issue resolutions for 12 issues in "ready" and "tentatively ready" status applied, resolving 13 issues:
template
keyword in class-or-decltypenoexcept
and function type-dependenceCWG motion 4: P0612R0 "NB comment CH 2: volatile", resolving 1 NB comment:
CWG motion 5: P0613R0 "NB comment GB15: Resolution of Core Issue 2011", resolving 1 NB comment and 1 issue:
CWG motion 6: P0298R3 "A byte
type definition", resolving 3 NB comments:
byte
type for increased type safety" with modificationsbyte
type definition"CWG motion 7: P0615R0 "Renaming for structured bindings"
CWG motion 8: P0620R0 "Drafting for class template argument deduction issues", resolving 3 NB comments:
T{x1, x2, ...}
syntaxCWG motion 9: P0270R3 "Removing C dependencies from signal handler wording" with changes, see below, resolving 1 NB comment:
CWG motion 10: P0250R3 "Wording improvements for initialization and thread ids", resolving 2 issues in "concurrency" status:
CWG motion 11a applies to the Modules TS.
CWG motion 11b was not approved.
LWG motion 1 applies to the Coroutines TS.
LWG motion 2: Library issue resolutions for 22 issues in "Ready" and "Tentatively Ready" status applied, resolving 23 issues:
Allocator::pointer
any_cast
and move semantics (no changes, resolved by 2769)const
in the return type of any_cast(const any&)
std::function
and std::reference_wrapper
scoped_allocator_adaptor
constructors must be constrainedquoted
should work with basic_string_view
shared_ptr
changes for array supportconstexpr
default constructor for istream_iterator
list::sort
should say that the order of elements is unspecified if an exception is thrownstring_view
iterators use old wording<tgmath.h>
gcd
and lcm
should support a wider range of input valuesis_literal_type
specification needs a little cleanupin_place_t
check for optional::optional(U&&)
should decay U
std::function
move constructor does unnecessary workerase
in [vector.modifiers]std::throw_with_nested("string_literal")
Resolution of 2812 "Range access is available with <string_view>
" not applied, as this issue had already been resolved editorially
LWG motion 3: Library issue resolutions for 3 issues in "Review" status applied:
filesystem::path
overloads for "File-based streams"istreambuf_iterator::operator->
tuple
should be a literal typeLWG motion 4: P0317R1 "Directory entry caching for filesystem" with changes, see below
LWG motion 5: P0492R2 "Proposed resolution of C++17 National Body comments for filesystems", resolving 31 NB comments and 2 issues:
path
in terms of a string requires leaky abstraction.
and ..
already match the name production/
when appending empty string prevents useful applications (no changes, resolved by US 74, CA 3)remove_filename
postcondition is not by itself a definitionremove_filename
's name does not correspond to its behavior (no changes, resolved by US 52, US 60)remove_filename
is brokenreplace_extension
's use of path
as parameter is inappropriateparent_path
behavior for root paths is useless (no changes, resolved by US 77, CA 6)path("/foo/").filename() == path(".")
is surprisingfilename
should not begin an extension (no changes, resolved by US 74, CA 3)stem() + extension() == filename()
(no changes, resolved by US 74, CA 3)lexically_normal
inconsistently treats trailing /
but not /..
as directory (no changes, resolved by US 37, US 74, CA 3)operator/
and other append
s not useful if arg has root-nameabsolute
in [fs.op.absolute] is overspecified for non-POSIX-like O/Spermissions
error_code
overload should be noexcept
(no changes, resolved by Late 37)permissions
actions should be separate parameterLWG motion 6: P0430R2 "File system library on non-POSIX-like operating systems", resolving 6 NB comments:
path
constructors is neededLWG motion 7: P0452R1 "Unifying <numeric>
parallel algorithms", partially resolving 2 NB comments:
inner_product
should use GENERALIZED_SUM
inner_product
should not have ExecutionPolicy
overloadLWG motion 8: P0518R1 "Allowing copies as arguments to function objects given to parallel algorithms", resolving 1 NB comment:
LWG motion 9: P0523R1 "Complexity of parallel algorithms", partially resolving 1 NB comment:
LWG motion 10: P0574R1 "Algorithm complexity constraints and parallel overloads", partially resolving 1 NB comment:
LWG motion 11: P0467R2 "Iterator concerns for parallel algorithms", partially resolving 2 NB comments:
adjacent_difference
specification to permit parallelizationLWG motion 12: P0623R0 "Final C++17 parallel algorithms fixes", partially resolving 3 NB comments:
inner_product
should use GENERALIZED_SUM
adjacent_difference
specification to permit parallelizationinner_product
should not have ExecutionPolicy
overloadLWG motion 13: P0604R0 "Resolving GB 55, US 84, US 85, US 86", resolving 4 NB comments:
is_callable
and result_of
to not use a function type as their interface*INVOKE(f, t1, t2, ..., tN)*
and *INVOKE(f, t1, t2, ..., tN, R)*
is_callable
to is_invocable
LWG motion 14: P0607R0 "inline
variables for the standard library", resolving 2 NB comments:
inline
variables for library tag typesLWG motion 15: P0618R0 "Deprecating <codecvt>
", resolving 3 NB comments:
<codecvt>
LWG motion 16: Revert P0181R1 "Ordered By Default", applied by 2016-06 LWG Motion 21, resolving 1 NB comment:
default_order
LWG motion 17: P0156R2 "Variadic lock guard", resolving 2 NB comments:
lock_guard
variadicLWG motion 18: P0599R1 "noexcept
for hash
functions", resolving 1 NB comment:
hash<T>
specializations should be noexcept
LWG motion 19: P0433R2 "Integrating template deduction for class templates into the standard library", resolving 2 NB comments and 3 issues:
Despite the claims of this paper and the wording of Motion 19, this paper is unrelated to US 14
LWG motion 20: Library issue resolutions for 23 issues in "Immediate" status applied, resolving 20 NB comments:
variant
move-assignment more exception safebad_optional_access
std::invoke
should use std::is_nothrow_callable
bad_any_cast::what()
optional
are not constexpr
unique_ptr
is_constructible_v<unique_ptr<P | D> | P | D const &>
should be false
when D
is not copy constructiblenoexcept
to several shared_ptr
related functionsshared_ptr::shared_ptr(Y*)
should be constrainedshared_ptr::shared_ptr(Y* | D | […])
constructors should be constrainedshared_ptr
constructor requirements for a deletershared_ptr::shared_ptr(const weak_ptr<Y>&)
constructor should be constrainedbasic_string
should require that charT
match traits::char_type
istream_iterator
default constructorpackaged_task
and type-erased allocatorsbasic_string
range mutators unintentionally require a default constructible allocator{variant,optional,any}::emplace
should return the constructed valueoptional<const T>
doesn't compare with T
Note: the resolutions of issues 2894 and 2911 in P0625R0 are not included in this motion
LWG motion 20a was not approved.
LWG motion 20b: Library issue resolution for 1 issue in "Immediate" status applied, resolving 1 NB comment:
is_aggregate_type
trait is neededLWG motion 21: P0558R1 "Resolving atomic<T>
named base class inconsistencies"
LWG motion 22: P0548R1 "common_type
and duration
"
LWG motion 23 applies to the Ranges TS.
CWG 6: In application of P0298R3, updated introductory sentence of [cstddef.syn]
to avoid claiming that std::byte
is part of ISO C's <stddef.h>
header.
CWG 9: Change to [csignal.syn] was not applied, because the desired normative
effect had already been accomplished by P0175R1,
which was applied at the previous meeting and removed the baseline text for
this change. The effect of the merge is that std::signal
is not required
to itself have C language linkage (but its parameter and returned function
pointer types are). Also added subclause to house description of signal
handlers, rather than including it in the <csignal>
header synopsis.
LWG 4: The normative description of directory_entry::is_directory
is
specified in terms of a non-existent file_status
member, and either the
status
or symlink_status
members could have been intended. After
consulting with LWG,
this usage of file_status
has been replaced by status
.
__cplusplus
macro value updated from 201402L
to 201703L
, resolving
NB comments CA 15 and US 83.
Added acknowledgement of ECMAScript trademark, resolving NB comment GB 10.
Added normative references to LIA-1 and IEEE 754.
Added note to definition of literal type, resolving NB comment GB 68.
Made introductory sentence of [basic.stc] consistent with later normative wording, resolving NB comment JP 3, as directed by CWG.
Promoted "Scope", "Normative references", and "Terms and definitions" to top-level Clauses as required by ISO Directives.
Updated introductory text of "Normative references" and "Terms and definitions" to match those specified by ISO Directives.
[fs.path.generic]: rearranged pathname grammar to avoid long paragraphs of text in descriptive elements and refactored to fix ambiguities in the grammar, after consultation with LWG.
[expr.prim.lambda]: split out subclauses for the closure type and captures; reviewed by CWG at Kona 2017.
Move specification of deprecated standard library headers into Annex D, after consultation with LWG.
A "Cross references from ISO C++ 2014" section has been added, listing all stable names from C++ 2014 that do not appear within the C++ 2017 standard, and where the corresponding text can be found (if it still exists).
Systematic review and cleanup of filesystem stable names:
[class.path] -> [fs.class.path]
[path.generic] -> [fs.path.generic]
[path.cvt] -> [fs.path.cvt]
[path.fmt.cvt] -> [fs.path.fmt.cvt]
[path.type.cvt] -> [fs.path.type.cvt]
[path.req] -> [fs.path.req]
[path.member] -> [fs.path.member]
[path.construct] -> [fs.path.construct]
[path.assign] -> [fs.path.assign]
[path.append] -> [fs.path.append]
[path.concat] -> [fs.path.concat]
[path.modifiers] -> [fs.path.modifiers]
[path.native.obs] -> [fs.path.native.obs]
[path.generic.obs] -> [fs.path.generic.obs]
[path.compare] -> [fs.path.compare]
[path.decompose] -> [fs.path.decompose]
[path.query] -> [fs.path.query]
[path.gen] -> [fs.path.gen]
[path.itr] -> [fs.path.itr]
[path.non-member] -> [fs.path.nonmember]
[path.io] -> [fs.path.io]
[path.factory] -> [fs.path.factory]
[class.filesystem_error] -> [fs.class.filesystem_error]
[enum.path.format] -> [fs.enum.path.format]
[enum.file_type] -> [fs.enum.file_type]
[enum.copy_options] -> [fs.enum.copy.opts]
[enum.perms] -> [fs.enum.perms]
[enum.perm_options] -> [fs.enum.perm.opts]
[enum.directory_options] -> [fs.enum.dir.opts]
[class.file_status] -> [fs.class.file_status]
[file_status.cons] -> [fs.file_status.cons]
[file_status.obs] -> [fs.file_status.obs]
[file_status.mods] -> [fs.file_status.mods]
[class.directory_entry] -> [fs.class.directory_entry]
[directory_entry.cons] -> [fs.dir.entry.cons]
[directory_entry.mods] -> [fs.dir.entry.mods]
[directory_entry.obs] -> [fs.dir.entry.obs]
[class.directory_iterator] -> [fs.class.directory_iterator]
[directory_iterator.members] -> [fs.dir.itr.members]
[directory_iterator.nonmembers] -> [fs.dir.itr.nonmembers]
[class.rec.dir.itr] -> [fs.class.rec.dir.itr]
[rec.dir.itr.members] -> [fs.rec.dir.itr.members]
[rec.dir.itr.nonmembers] -> [fs.rec.dir.itr.nonmembers]
[istreambuf.iterator] 5 subclauses [istreambuf.iterator::equal], [istreambuf.iterator::op!=], [istreambuf.iterator::op*], [istreambuf.iterator::op++], [istreambuf.iterator::op==] merged into a single [istreambuf.iterator.ops] comprising half a page of text;
Several subclauses with stable names containing ::
have been renamed to
instead use .
as the component separator.
A log of editorial fixes made since N4640 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 dbf3efe18813054c95abae388c53bf30e96e7e83
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 20 15:19:47 2017 -0700
[intro.refs], [intro.defs] Update introductory text to match latest ISO
Directives.
commit 32825151765e214d79103a137aa29a9a4357687f
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 20 15:00:51 2017 -0700
Replace "this International Standard" with "this document" in some
places where it is a clear improvement.
The 7th Edition of the ISO Directives no longer require us to use
"this International Standard" when the document refers to itself. We
retain that phrasing when the reference is to the abstract notion of
the specification as opposed to the text embodying it.
This is a step towards addressing #1389.
commit 1798a9b6795d6ee92bf093e2a6256c34212552b1
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 20 14:14:22 2017 -0700
[fs.path.generic] Refactor generic pathname grammar to remove redundancy and ambiguity.
commit 660d97e40353337b0b6b533903ab16e330855a77
Author: Eelis van der Weegen <eelis@eelis.net>
Date: Sat Aug 6 18:02:50 2016 +0200
[depr.func.adaptor.typedefs] Clarify that reference_wrapper does not define argument_type for non-nullary member function pointer types.
commit 95cbc03c20f20d98a53a3e696df6003ec27abc42
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 8 16:35:25 2017 +0100
[istreambuf.iterator] Join subsections for operations descriptions.
There was one subsection for every operator, yet everything
fits on half a page.
Fixes #1429, #1449.
commit d2b6fb6eefc3c28eb448352cd6d8b0d08e860a66
Author: Jonathan Wakely <cxx@kayari.org>
Date: Thu Mar 16 21:27:11 2017 +0000
[containers] Rephrase deduction guide constraints
Replace "is called with" wording that doesn't apply to deduction guides.
Move rules about qualifying as input iterators or allocators to
[container.requirements.general].
commit a7f52d1904e5a6d2d407eb4145ba54552d0b3e69
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Mar 20 00:07:04 2017 -0700
[fs.path.generic] Move descriptions of grammar elements out of the
grammar and into separate paragraphs, and format path grammar as we
format the language grammar.
Also rephrase description of root-name to use the defined term
"implementation-defined" directly rather than separating it into
"implementations [...] define".
commit 04a9e5d759b4fea810ed029dd6b6a0d5ebfd224a
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Feb 10 22:46:20 2017 +0100
[fs.op.copy], [fs.op.copy_file] Rephrase requirements on copy_options.
Use bitmask 'element' phrasing for restrictions on copy_options.
Fixes #1445.
commit df9a809a36c34acc0870c5d7869e7549574e1437
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Sat Mar 18 23:08:32 2017 +0100
[partial.sort] Remove 'It takes' from complexity specification.
Partially addresses #1088.
commit 5cf60394dbe171ec16bfbba1459772e40b9cf6e1
Author: Thomas Köppe <tkoeppe@google.com>
Date: Sat Mar 18 21:21:14 2017 +0000
[temp.class.spec.mfunc] Add missing comment to example
commit cdd6dda21e3273ea63b733c3cfb3b630bb1847eb
Author: Richard Smith <richard@metafoo.co.uk>
Date: Thu Mar 16 15:37:17 2017 -0700
[xref] Add glossary of cross-references between C++14 section labels and
C++17 section labels.
Fixes #1547.
commit 88c20950fac6915844143bb73129e2eb1b41d17d
Author: Jonathan Wakely <cxx@kayari.org>
Date: Thu Mar 16 02:51:38 2017 +0000
[filesystem] Shorten stable names and add "fs." prefixes
[class.path] -> [fs.class.path]
[path.generic] -> [fs.path.generic]
[path.cvt] -> [fs.path.cvt]
[path.fmt.cvt] -> [fs.path.fmt.cvt]
[path.type.cvt] -> [fs.path.type.cvt]
[path.req] -> [fs.path.req]
[path.member] -> [fs.path.member]
[path.construct] -> [fs.path.construct]
[path.assign] -> [fs.path.assign]
[path.append] -> [fs.path.append]
[path.concat] -> [fs.path.concat]
[path.modifiers] -> [fs.path.modifiers]
[path.native.obs] -> [fs.path.native.obs]
[path.generic.obs] -> [fs.path.generic.obs]
[path.compare] -> [fs.path.compare]
[path.decompose] -> [fs.path.decompose]
[path.query] -> [fs.path.query]
[path.gen] -> [fs.path.gen]
[path.itr] -> [fs.path.itr]
[path.non-member] -> [fs.path.nonmember]
[path.io] -> [fs.path.io]
[path.factory] -> [fs.path.factory]
[class.filesystem_error] -> [fs.class.filesystem_error]
[enum.path.format] -> [fs.enum.path.format]
[enum.file_type] -> [fs.enum.file_type]
[enum.copy_options] -> [fs.enum.copy.opts]
[enum.perms] -> [fs.enum.perms]
[enum.perm_options] -> [fs.enum.perm.opts]
[enum.directory_options] -> [fs.enum.dir.opts]
[class.file_status] -> [fs.class.file_status]
[file_status.cons] -> [fs.file_status.cons]
[file_status.obs] -> [fs.file_status.obs]
[file_status.mods] -> [fs.file_status.mods]
[class.directory_entry] -> [fs.class.directory_entry]
[directory_entry.cons] -> [fs.dir.entry.cons]
[directory_entry.mods] -> [fs.dir.entry.mods]
[directory_entry.obs] -> [fs.dir.entry.obs]
[class.directory_iterator] -> [fs.class.directory_iterator]
[directory_iterator.members] -> [fs.dir.itr.members]
[directory_iterator.nonmembers] -> [fs.dir.itr.nonmembers]
[class.rec.dir.itr] -> [fs.class.rec.dir.itr]
[rec.dir.itr.members] -> [fs.rec.dir.itr.members]
[rec.dir.itr.nonmembers] -> [fs.rec.dir.itr.nonmembers]
commit ad33212fded427f1e0b4e57c53c9e9215318b223
Author: Alisdair Meredith <public@alisdairm.net>
Date: Thu Mar 16 11:21:05 2017 -0400
[any.modifiers] fix emplace return type for 'any' (#1545)
LWG issue 2857 was applied verbatim, without noticing
that 'ValueType' had been previously changed to 'T'.
This makes things consistent by choosing 'T' as the
simpler form, more consistent with 'optional' and
'variant'.
commit 09e4674b0b6ab2f74bfe5a14120edea874115779
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Feb 28 07:27:01 2017 +0100
[expr.prim.lambda] Move syntactic restriction on decl-specifier-seq to the front.
Per CWG guidance.
commit 763a3fda5cec74d17371ddf4957f1f522331ebb0
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Nov 30 19:17:52 2016 +0100
[expr.prim.lambda] Split specification of lambda expressions into subsections.
Fixes #1155.
commit 8139f2f9ec81cf4b8c24640f968880241dd23231
Author: Thomas Köppe <tkoeppe@google.com>
Date: Thu Nov 17 19:51:44 2016 +0000
Move specification of deprecated headers to Annex D
commit c9354b33e1de8e0cf6dc42a73c733e1d8a34e7e0
Author: Richard Smith <richard@metafoo.co.uk>
Date: Wed Mar 15 18:29:49 2017 -0700
Update value of __cplusplus to 201703L.
Fixes #1513 and NB CA 15 and US 83 (C++17 CD).
commit 8baa18cbbf33a9b73711638b13a4960e15179c6d
Author: Richard Smith <richard@metafoo.co.uk>
Date: Wed Mar 15 18:29:13 2017 -0700
Add acknowledgement of ECMAScript trademark.
Fixes NB GB 10 (C++17 CD).
commit 4d53b8b250751aae7768955f75eb7f27db08d83e
Author: Richard Smith <richard@metafoo.co.uk>
Date: Wed Mar 15 12:55:55 2017 -0700
Editorial fixes for P0317R1.
[directory_entry.mods] Improve singular/plural, add commas.
[class.directory_iterator] Reorder words to more closely align xref with
the term for which it is a reference, add comma.
commit dd42ed5d6e04e623992e0464e49323a2b6a1f518
Author: Richard Smith <richard@metafoo.co.uk>
Date: Sun Mar 12 14:34:57 2017 -0700
[atomics.flag] Replace "shall be" with "is" when describing properties
of the implementation, for consistency with changes made by P0558R1.
commit 49caa2b829256f8198ed649ca3f5057bde96a2c7
Author: Thomas Köppe <tkoeppe@google.com>
Date: Sun Mar 5 09:19:33 2017 -1000
[func.search] Add missing period
commit 4f0891849e4799367174cc8783a3d88b6ff6b95a
Author: Jonathan Wakely <cxx@kayari.org>
Date: Fri Mar 3 02:36:27 2017 +0000
[meta.trans] replace "shall name" with "names" in traits tables
commit 42c6d5cc8ed83ba4b48b8b94d51b7a317d577a46
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Dec 20 21:45:21 2016 +0100
[lib] For showing complexity, use $N \log N$
and not $N \log(N)$ or other variants.
Partially addresses #1088.
commit 42c5a2ce36d7403ca37cb8b038aa37065c353ba4
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Tue Dec 20 23:45:26 2016 +0100
[intro.refs] Add normative references to LIA-1 and IEEE 754.
Fixes #237.
commit bdff8687ccb470564400597403d484ad02890f24
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Fri Feb 10 21:25:42 2017 +0100
[any] Use 'contained value' consistently.
This harmonizes the use of 'constained value' across
optional, variant, and any, with appropriate index
entries.
Fixes #1401.
commit 6a5edb752b88c448dce4cba528de307d79966b9e
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Feb 9 21:42:49 2017 +0100
Harmonize punctuation for 'ill-formed, no diagnostic required'
Fixes #1450.
commit 40f3fb37986ecff07567cc4601fac334fee8aff9
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 8 15:35:43 2017 +0100
[basic.types] Remove excessive references to [basic.type.qualifier].
Fixes #1419.
commit ee930ef3ee97f244d278ac3f762ec5f167dc005a
Author: Jonathan Wakely <cxx@kayari.org>
Date: Thu Mar 2 02:20:48 2017 +0000
[rand.dist.bern.negbin] Fix index for k member
commit bbcf0ea60c63d741bc51818633c70df2690e99b4
Author: Richard Smith <richard@metafoo.co.uk>
Date: Wed Mar 1 13:34:52 2017 -1000
Add a note to the definition of literal type to indicate that it is not
a guarantee that such an object can be created in a constant expression.
Wording from John Spicer / CWG.
Addresses NB GB 68 (C++17 CD).
commit be54f2e8e12c54071692ef3ebd6e49f6e3255a27
Author: Jakub Wilk <jwilk@jwilk.net>
Date: Tue Feb 28 19:17:32 2017 +0100
[diff.decl] Fix typo (#1494)
commit 2f6aff7e71cc33243671d1e501911d331af61fa3
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Feb 27 16:23:46 2017 -1000
[basic.stc] Fix introductory sentence on dynamic storage duration to
match later more-normative rule: it applies to objects, not storage.
Fixes NB JP 3 (C++17 CD).
commit ec4ca6fc07907ea817152970c45d4c04c86d3c5c
Author: Richard Smith <richard@metafoo.co.uk>
Date: Mon Feb 27 11:30:27 2017 -0800
[intro] Promote "Scope", "Normative references", "Terms and definitions"
to top-level clauses per ISO directives.
Modify \definition macro so we can more easily have definitions at
different depths in different lists.
commit fe6c8bda60fbca2cd3a488650988ce0a7df20d03
Author: Eelis <github.com@contacts.eelis.net>
Date: Fri Feb 24 12:09:31 2017 +0100
[localization, diff] Remove superfluous 'return 0;' from 'main' in examples. (#1482)
commit 17e28024d81e366a6d1044fa29a0cd1bdf10f77f
Author: Eelis <github.com@contacts.eelis.net>
Date: Thu Feb 23 12:32:58 2017 +0100
[meta.unary.prop, meta.trans.other] Omit unhelpful second argument in static_asserts. (#1479)
commit 33f16cb3417ad21949769d82cae36c1b653e4519
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Feb 23 01:47:09 2017 +0100
[dcl.attr.nodiscard] Clarify example with reference return type. (#1471)
Add rationale why a warning is not encouraged for this case.
Fixes #1470.
commit 7cd42666e143e19bdaf9e62211066cab255fb99f
Author: Eelis <github.com@contacts.eelis.net>
Date: Thu Feb 23 01:25:26 2017 +0100
[expr.mptr.oper] Use defined term 'null member pointer value'. (#1434)
commit 5bc5cbae28d9e741ebc7df996f1f0d230ac4087e
Author: Eelis <github.com@contacts.eelis.net>
Date: Tue Feb 21 00:16:14 2017 +0100
[rand.req.{eng,dist}] Replace square brackets around reference with regular parentheses. (#1481)
commit 44f489bba7c7595077043c7360cf7ff329eeb090
Author: Eelis <github.com@contacts.eelis.net>
Date: Sun Feb 19 15:41:48 2017 +0100
[except.spec] Add missing 'an'. (#1478)
commit 16938d84892051f5c9e2fe4afca578fc57b1c4f3
Author: Thomas Köppe <tkoeppe@google.com>
Date: Sat Feb 18 19:21:13 2017 +0000
[support.runtime] Remove extraneous and misleading parentheses from names of functions and macros
commit d2fe52eaaf53b6843ab6fe152a2a05e5a7da06fc
Author: Eelis <github.com@contacts.eelis.net>
Date: Thu Feb 16 20:54:49 2017 +0100
[alg.min.max] Enlarge lfloor/rfloor delimiters. (#1455)
commit 7e5537d1e9c7a6d63c9877cf5babde4ddf14807c
Author: Eelis <github.com@contacts.eelis.net>
Date: Wed Feb 15 15:38:19 2017 +0100
Parenthesize some \refs. (#1436)
commit 473966e60653e8e2bc8ed154d8b18a3736f97088
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Thu Feb 9 12:14:12 2017 +0100
[unord.req] Insert hint is 'p', not 'q' (#1440)
LWG 2540 changed the hint for insert from 'q'
(a valid and dereferenceable iterator) to 'p'
(a valid, but not necessarily dereferenceable iterator),
but neglected to adjust the description text.
Fixes #1423.
commit 90c486f80612c3a7fd26ee408631991814f7b81c
Author: Jens Maurer <Jens.Maurer@gmx.net>
Date: Wed Feb 8 17:21:31 2017 +0100
[any.assign] Rename T to VT. (#1448)
These renames were overlooked in commit 8b1f6cc8d73eec0306db1dec66f2da52a03ea274.
Fixes #1443.