N4759 Editor’s Report: C++ Extensions for Library Fundamentals, Version 3
Acknowledgements
Thanks to Tim Song for pointing out editorial issues.
Special thanks to Geoffrey Romer for his stewardship of the
previous version of this Technical Specification.
New papers
- N4758
is the current working draft and the prospective initial working paper for the third
version of the Library Fundamentals Technical Specification.
- N4759
is this Editor’s Report.
Change history and motions
The previous version of this Technical Specification, C++ Extensions for Library
Fundamentals, Version 2 (LFTSv2), was published in 2017;
N4617
is its DTS document. The current working draft, N4758, is the candidate to become the
initial working paper for the new Version 3 of the TS (LFTSv3).
There has been only one motion since the publication of the LFTSv2, which rebases the
document from C++14 to C++17 and thereby removes all parts that have already been merged
into the C++17 International Standard:
- Jacksonville 2018, LWG Motion 6:
Move to direct the Convener to request a New Work Item for a Technical Specification on
“C++ Extensions for Library Fundamentals, Version 3” and create a working draft
with P0996R1
modifying Library Fundamentals Version 2 N4600.
This motion has been applied with changes: P0996R1 asked for the removal of all
overloads of the sample
algorithm, but only one of the overloads has been
merged into C++17. The other overload is retained in the LFTSv3 working draft.
Editorial changes
- Clause [memory] has been reordered so that [memory.observer.ptr] immediately
follows the synopsis [header.memory.synop] in which the feature is first declared.
- Classes
source_location
and propagate_const
used to
be defined in their header synopsis. This has been changed so that they are merely
declared in the synopsis, but defined separately as part of their detailed specification.
- Further to the above, subclauses of [utility] have been reorganized slightly
to remove hanging paragraphs from the specification of
propagate_const
.
The final document will need to avoid hanging paragraphs entirely, and there will be further
reorganization in the future.
Commit history
From the draft sources on GitHub.
commit 64392fee2e511870fca3fe09381914b3e7bf0660 (HEAD -> v3, origin/v3)
Author: Thomas Köppe <tkoeppe@google.com>
Date: Mon Jun 25 14:28:41 2018 +0100
[utility] Add a dedicated subclause for propagate_const
commit d1975ddd9d86e899602ee44b26aaaffc1e3e828c
Author: Thomas Köppe <tkoeppe@google.com>
Date: Mon Jun 25 14:19:33 2018 +0100
[func,futures] Remove obsolete editor's notes.
The underlying issues have already been incorporated into C++17.
commit e55344b539581ad161cf98aba21e045c0c2e69ce
Author: Thomas Köppe <tkoeppe@google.com>
Date: Mon Jun 25 14:07:29 2018 +0100
[algorithms, general.feature.test] Restore the one overload of "sample" that has not been merged into the IS (#74)
commit 587379108d73ae79ff5d613e12e697f0f3775e91
Author: Thomas Köppe <tkoeppe@google.com>
Date: Wed Jun 20 12:13:07 2018 +0100
[utilities] Reorganize clause
* Move propogate_const into "Utility components".
* Reorganise propagate_const to separate the header synopsis
from the class definition, and to use the new outline style
used in the IS that does not have hanging paragraphs.
commit 27c7b093ad8fe55b43a4aae2e71d7b8328a7ea1b
Author: Thomas Köppe <tkoeppe@google.com>
Date: Wed Jun 20 01:34:31 2018 +0100
[reflection] Separate source_location header synopsis from class definition
commit 05d43506de5cdb723d461303efa05f854f86a8b7
Author: Thomas Köppe <tkoeppe@google.com>
Date: Wed Jun 20 01:22:42 2018 +0100
Update namespaces from v2 to v3 and use C++17-style multiple-namespace syntax where possible
commit effc031cee33aa9be9112cae7d1b81e7c4d5e83b
Author: Thomas Köppe <tkoeppe@google.com>
Date: Wed Jun 20 01:08:06 2018 +0100
[memory] Move [memory.observer.ptr] subclause up so it is contiguous with the header synopsis that references it
commit 40bfeaf8d07afe05a3851f5ecf9a548825bcd427
Author: Thomas Köppe <tkoeppe@google.com>
Date: Wed Jun 20 00:26:27 2018 +0100
P0996R1 Rebase Library Fundamentals TS on C++17
Excludes namespace renaming, subclause moves and synopsis splits.
commit 04ac52895e3902e5e674790fa17031eca61c8a74
Author: Thomas Köppe <tkoeppe@google.com>
Date: Tue Jun 19 23:54:33 2018 +0100
[main] Update front matter for LFTSv3