diff --git a/.travis.yml b/.travis.yml
index 2c99e00e4f..59d220bed8 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -60,6 +60,7 @@ addons:
- texlive-latex-base
- texlive-latex-extra
- texlive-latex-recommended
+ - texlive-generic-recommended
- texlive-binaries
- graphviz
- lmodern
diff --git a/papers/n4700.pdf b/papers/n4700.pdf
new file mode 100644
index 0000000000..9062905f62
Binary files /dev/null and b/papers/n4700.pdf differ
diff --git a/papers/n4701.html b/papers/n4701.html
new file mode 100644
index 0000000000..543315a383
--- /dev/null
+++ b/papers/n4701.html
@@ -0,0 +1,552 @@
+
N4701
+N4701 Editors' Report -- Programming Languages -- C++
+
+2017-10-16
+Richard Smith (editor) (Google Inc)
+Dawn Perchik (co-editor) (Embarcadero Technologies Inc)
+Thomas Köppe (co-editor) (Google DeepMind)
+<cxxeditor@gmail.com>
+
+Acknowledgements
+
+Special thanks to
+Jens Maurer,
+Jonathan Wakely,
+and Eelis van der Weegen
+for performing many of the editorial fixes since N4687.
+
+Thanks to all those who have submitted editorial
+issues
+and to those who have provided pull requests with fixes.
+
+New papers
+
+
+- N4700 is the current working draft for C++20. It replaces N4659.
+- N4701 is this Editors' Report.
+
+
+Motions incorporated into working draft
+
+This revision contains only editorial changes relative to N4687.
+
+Notable editorial changes
+
+Changes in the style of specification
+
+
+- Entries in Terms and Definitions have been reworded to serve as a replacement
+for the term they define.
+- Care has been taken to replace any use of "must" with "shall" when it states
+a requirement rather than a logical necessity.
+- The standard now generally refers to itself as "this document", and only in
+rare cases as "this International Standard".
+
+
+Drafting for future standard changes should take the above into account.
+
+Lists of figures and tables
+
+At the request of ISO, the lists of figures and tables have been removed from
+the document.
+
+Pagination
+
+At the request of ISO, the paper size used for the working draft has been
+switched to A4.
+
+Courtesy of Jens Maurer, we now automatically attempt to avoid page breaks
+in undesirable places: immediately after section headings, and between the
+declaration and description of standard library elements. We also provide
+page break hints at the end of declarations and on blank lines in code blocks.
+Many thanks to Jens; this will substantially reduce the effort required to
+finalize the C++20 IS. Please file an file an editorial
+issues
+if you find any bad page breaks in the working draft.
+
+Filesystem Terms and Definitions
+
+Per the ISO Directives, the filesystem wording is not entitled to its own
+Terms and Definitions section. The corresponding terms have been converted
+to use our normal style of an italicized definition, the definitions have
+been incorporated into the relevant portion of the running text, and the
+[fs.definitions] subclause has been removed.
+
+Minor editorial fixes
+
+A log of editorial fixes made to the working draft since N4687 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 e3a5f29e3dbd60089a6371e5f16d5d507c429ea3
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Oct 16 16:19:56 2017 -0700
+
+ [util.smartptr.shared.cmp] Fix overfull hbox.
+ [unique.ptr.special] Adjust to match changes to [util.smartptr.shared.cmp]
+ [tuple.cnstr] Adjust wording to avoid awkward linebreak within code
+ fragment.
+
+commit d1ba29b57990161cbbcdbb3faf60aa9b67cc3274
+Author: Akira Takahashi <faithandbrave@gmail.com>
+Date: Tue Oct 17 01:29:14 2017 +0900
+
+ [util.smartptr.shared.cmp] Add "typename" for dependent name (#1770)
+
+commit dbb1ea97f1cb57cab275ba4eec9def4b3daab97e
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Mon Oct 16 16:20:06 2017 +0200
+
+ [unord.map.overview], [unord.multimap.overview] Use iter_val_t instead of iter_value_t (#1772)
+
+commit b07fd6c53e0d5841b513192ebe08c047f3d05df4
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Thu Apr 20 21:41:52 2017 +0200
+
+ Use 'well-formed' (with hyphen) consistently.
+
+ Fixes #1618.
+
+commit af40423574aa8e3a495b382840a258f94cb6349d
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Mon Jul 10 18:23:47 2017 +0100
+
+ [stringbuf.virtuals] Rephrase DR 453 resolution for seekoff
+
+ This avoids the requirement to compare newoff to zero when the value of
+ newoff hasn't been determined.
+
+commit d6a3234838da05d460366c83d8ec524f42ea37a4
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Oct 6 22:29:52 2017 +0200
+
+ [thread.condition.condvarany] Remove note made incorrect by LWG 2135.
+
+ Fixes #1755.
+
+commit dead61f32a2ed040745b668640924520d7b64c71
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Fri Oct 13 20:28:20 2017 +0100
+
+ [fs.filesystem.syn] fix ordering of exists and equivalent
+
+commit ac3ed314239fccf81cece3cf7aeabdced03e5032
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Oct 13 23:30:00 2017 +0200
+
+ [class.virtual] Correct function names in example comments.
+
+ Fixes #1740.
+
+commit 0059794f5370697d647bf31cc434cf306ba08554
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Tue Oct 10 12:23:17 2017 -0700
+
+ Front matter: remove "Contents" entry from itself. Remove list of tables
+ and list of figures. Reorder cross-reference bullets in "Terms and
+ definitions".
+
+ As requested by ISO Central Secretariat.
+
+commit 8b767974c25346ea4d8990ebe315ab8dfa45a3b9
+Author: Jens Maurer <Jens.Maurer@gmx.net>
+Date: Fri Oct 6 21:52:12 2017 +0200
+
+ [mem.res.private] Remove misleading 'typical' in note.
+
+ Fixes #1698.
+
+commit 4a5ff4e7f947da6130a25900443317c18e879acf
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Oct 3 13:41:04 2017 +0100
+
+ [time] Fix namespace for definitions in std::chrono
+
+ The previous commit ad767d39f1a0667470ded0e5eb3155fcdd55f465 accidentally added the wrong namespace "std" instead of "std::chrono".
+
+commit 72647e7b03472315794872a10dfe2f2b74a2fa74
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Oct 3 10:22:55 2017 +0100
+
+ [mem.res] Fix namespace for definitions in std::pmr
+
+ The previous commit ad767d39f1a0667470ded0e5eb3155fcdd55f465 accidentally added the wrong namespace "std" instead of "std::pmr".
+
+commit eb035cf60c50ef8ad7d74ffdd5c2140f4179769a
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Oct 3 01:01:53 2017 +0100
+
+ [memory.syn, unique.ptr] Add explanatory comments to make_unique overloads similar to the ones for make_shared, and mild presentational cleanup
+
+commit ad767d39f1a0667470ded0e5eb3155fcdd55f465
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Oct 3 00:18:23 2017 +0100
+
+ [utilities] Add missing "namespace std" to some class definitions
+
+commit b888c3d0cbe078475562f2b4d5f45e1528e61c6e
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Oct 3 00:08:23 2017 +0100
+
+ [containers] Remove repeated statement of relational operator declarations (#1759)
+
+commit 1c43bc8685335048cd30042a712c0b40ff7f890a
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Mon Oct 2 22:55:20 2017 +0100
+
+ [unique.ptr, util.smartptr.shared] Remove redundant repetitions of declarations that already appear in the synopsis (#1758)
+
+commit 6d9e8c6237230c1c09d7f265751caf8cd5a1e2dc
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 25 15:58:53 2017 -0700
+
+ [dcl.type.simple] Improve naming of template specialization in example.
+
+commit 97f21603bd6a9a547b98394a85c1cc0f342f7273
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 25 15:45:43 2017 -0700
+
+ Fix '// Error' in examples to use '// error' instead.
+
+commit fa958265bed2a99d6d9787705297dc34c749017a
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Mon Sep 25 23:45:52 2017 +0100
+
+ [thread.req.timing] Use mathematical symbols
+
+commit 10c90ef815f10a800a3119476dc637c288c7c312
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Mon Sep 25 23:31:58 2017 +0100
+
+ [thread] Harmonize presentation of synopses and declarations
+
+commit 9680eb724be8802b9823b234f0f5cad88a2efde9
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 25 11:49:13 2017 -0700
+
+ [ios.members.static] Fix case of first letter in footnotes.
+
+commit 6a7b14ae0b0f74f3ee27f0ad1354920acc830558
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 25 09:32:47 2017 -0700
+
+ [string.assign] Add missing "Returns:".
+
+commit 9177b4b733b7fe8d121647d5638040c1d059370e
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Mon Sep 18 13:44:55 2017 +0100
+
+ [allocator.requirements] Fix footnote within Table 31 and table placement
+
+commit b6268620ee5cf87e4416f58e8f37995618b6495c
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Tue Aug 15 13:34:46 2017 +0100
+
+ [futures.async] remove parens from DECAY_COPY()
+
+commit 64c8b273fb401b845a851fc0361766943959d6d7
+Author: timsong-cpp <rs2740@gmail.com>
+Date: Sat Aug 12 01:03:02 2017 -0400
+
+ [diff.cpp14.library] Add Annex C entry for new headers in C++17
+
+ Fixes #1700.
+
+commit 1a9b8ebecd1c4e2da29329be5d7bda696c8cfbed
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Tue Sep 12 11:53:46 2017 -0700
+
+ Convert "must"s in normative wording that do not indicate logical
+ necessity to a different form.
+
+ Normative requirements use "shall". Advice to users uses "should".
+ Description of the behavior of the implementation that does not of
+ itself constitute a requirement uses the imperative mood.
+
+ Fixes ISO 21 (C++17 DIS)
+
+commit 6218c216178655ece30733a0ec8043af9a65bf2e
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Thu Sep 14 14:45:56 2017 -0700
+
+ Replace "this International Standard" with "this document" when
+ referring to the document as a body of text.
+
+ Cases where that phrasing is used to compare this standard to other
+ revisions of the C++ standard retain this phrasing for clarity.
+
+ Fixes ISO 20 (C++17 DIS)
+
+commit 132326619d234a2b62819fd3a2cba6d9c654be23
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Thu Sep 14 14:00:40 2017 -0700
+
+ [support.start.term] Remove note that is not justified by normative
+ wording.
+
+ Fixes NB JP 7 (C++17 DIS)
+
+commit 577968dc4de4674333510aea1d0e7da38c9e3bb6
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 11 16:51:59 2017 -0700
+
+ [temp.over.link] Change leading letter in comments in example to lowercase.
+
+ Fixes NB JP 6 (C++17 DIS)
+
+commit 081894151eb9b8f628168af9fffc38b0cbd0f6cf
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 11 16:45:15 2017 -0700
+
+ [over.match.funcs] Remove the number of overload resolution contexts
+ from the introductory text.
+
+ It has become out of date relative to the actual number, and listing a
+ number here is not useful.
+
+ Fixes NB JP 5 (C++17 DIS)
+
+commit 6b0c8352738bce937d5aa633aacb4cd3c3285acc
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Sep 7 21:58:28 2017 +0100
+
+ [intro.defs, definitions, fs.definitions] change notes in Terms and Definitions to say "Note X to entry"
+
+ Fixes ISO 3 (C++17 DIS)
+
+commit fa49082e030985ebdf3ecc91ece5cbdf72421338
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 11 16:30:12 2017 -0700
+
+ [fs] Integrate file system terms and definitions into the text at appropriate places.
+
+ Update xrefs to point to the relevant definitions.
+
+ Update index entries for constraint normalization to harmonize with
+ those for path normalization.
+
+commit 60453da3081d8fa5753f48d2c78e1e78b1a3b079
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 11 11:40:41 2017 -0700
+
+ [fs.definitions] Replace "Terms and definitions" formatting with inline definitions.
+
+ These definitions do not satisfy ISO rules for a "Terms and definitions"
+ section, and in any case it does not make sense for FS to have its own
+ "Terms and definitions". Following our usual convention, we use inline
+ definitions for locally-scoped terms.
+
+commit 5619b65614eae10510f337a1eacd05fc4308fe5c
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Thu Sep 7 14:40:23 2017 -0700
+
+ Update [intro.defs] and [definitions] to use (roughly) substitutable
+ phrases as definitions.
+
+ In particular, such phrases should not begin with an article. However,
+ for definitions of adjectives, a noun phrase is still used, because the
+ English language is not compatible with ISO's requirements.
+
+commit a31fa795274e9fbb676b3ef2a8e60df12eb516b0
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Mon Sep 11 16:36:49 2017 -0700
+
+ [intro.refs] Remove redundant reference to C11 Technical Corrigendum 1.
+
+ When making a normative reference to another document, all relevant
+ Technical Corrigenda are assumed and need not be listed explicitly.
+
+ Fixes ISO 1 (C++17 DIS)
+
+commit 1a4e554f910cdd1df3d2d8a62c2270dd1219eddc
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Sep 7 20:02:06 2017 +0100
+
+ [any.cons] fix tag typename; "in_place<T>" should be "in_place_type<T>"
+
+ Fixes NB JP 10 (C++17 DIS)
+
+commit 788b07ba87458c35228ecbdccb2e9dfac37eebf8
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Sep 7 19:18:13 2017 +0100
+
+ [algorithms.parallel.user] remove stray full stop
+
+ Fixes NB JP 12 (C++17 DIS)
+
+commit d0b014a78818c0c1cc4c7b2e96f1264990d06478
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Thu Sep 7 19:09:32 2017 +0100
+
+ [support.general, depr.cpp.headers] remove index entries for now-deprecated headers and symbols, and add missing index entries for deprecated headers.
+
+ Fixes NB JP 23 (C++17 DIS)
+
+commit d9075c89a2539d5b3038c1a15b02673fe18589c3
+Author: Jonathan Wakely <cxx@kayari.org>
+Date: Thu Sep 7 11:55:36 2017 +0100
+
+ [alg.reverse] remove duplicated Requires: element
+
+ Fixes NB JP 14 (C++17 DIS)
+
+commit 27331fd3a2c8b3b78223712d56bbd51be1c9159b
+Author: Eelis van der Weegen <eelis@eelis.net>
+Date: Sat Aug 12 18:14:44 2017 +0200
+
+ Consistently place footnote mark after sentence full stop, not before it.
+
+commit be5c14cf44a6e6ea7348e65dbf99e3a8152c28ac
+Author: Richard Smith <richard@metafoo.co.uk>
+Date: Wed Aug 9 15:59:11 2017 -0700
+
+ [expr.prim.req.compound] Adjust description in example to be easier to understand.
+
+commit c57ffb959dc939979111a4d1bcc31b71da643511
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Fri Aug 4 18:33:41 2017 +0100
+
+ [temp.deduct] Split long paragraph 8
+
+commit e3b4927ea0f4e8c8bf1f7461226c729b4e2c00be
+Author: Thomas Köppe <tkoeppe@google.com>
+Date: Tue Aug 1 22:06:30 2017 +0100
+
+ [memory.syn, util.smartptr.shared] Add missing {make,allocate}_shared declarations to synopsis
+
+ We list those functions in two places: the main synopsis in [memory.syn], and also a smaller subset in [util.smartptr.shared] just for shared_ptr.
+
+ Also contains some minor presentational improvements for both instances.
+
+ Fixes #1697.
+
+commit 355a20beb12ba9c26cb09d41159f7f68238dab7d
+Author: timsong-cpp <rs2740@gmail.com>
+Date: Tue Aug 1 04:14:14 2017 -0400
+
+ [defns.well.formed] remove full stop
+
diff --git a/papers/n4701.md b/papers/n4701.md
new file mode 100644
index 0000000000..327bf41ef6
--- /dev/null
+++ b/papers/n4701.md
@@ -0,0 +1,424 @@
+# N4701 Editors' Report -- Programming Languages -- C++
+
+2017-10-16
+Richard Smith (editor) (Google Inc)
+Dawn Perchik (co-editor) (Embarcadero Technologies Inc)
+Thomas Köppe (co-editor) (Google DeepMind)
+``
+
+## Acknowledgements
+
+Special thanks to
+Jens Maurer,
+Jonathan Wakely,
+and Eelis van der Weegen
+for performing many of the editorial fixes since N4687.
+
+Thanks to all those who have [submitted editorial
+issues](https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue)
+and to those who have provided pull requests with fixes.
+
+## New papers
+
+ * [N4700](http://wg21.link/n4700) is the current working draft for C++20. It replaces [N4659](http://wg21.link/n4687).
+ * N4701 is this Editors' Report.
+
+## Motions incorporated into working draft
+
+This revision contains only editorial changes relative to N4687.
+
+## Notable editorial changes
+
+### Changes in the style of specification
+
+* Entries in Terms and Definitions have been reworded to serve as a replacement
+ for the term they define.
+* Care has been taken to replace any use of "must" with "shall" when it states
+ a requirement rather than a logical necessity.
+* The standard now generally refers to itself as "this document", and only in
+ rare cases as "this International Standard".
+
+Drafting for future standard changes should take the above into account.
+
+### Lists of figures and tables
+
+At the request of ISO, the lists of figures and tables have been removed from
+the document.
+
+### Pagination
+
+At the request of ISO, the paper size used for the working draft has been
+switched to A4.
+
+Courtesy of Jens Maurer, we now automatically attempt to avoid page breaks
+in undesirable places: immediately after section headings, and between the
+declaration and description of standard library elements. We also provide
+page break hints at the end of declarations and on blank lines in code blocks.
+Many thanks to Jens; this will substantially reduce the effort required to
+finalize the C++20 IS. Please file an [file an editorial
+issues](https://github.com/cplusplus/draft/wiki/How-to-submit-an-editorial-issue)
+if you find any bad page breaks in the working draft.
+
+### Filesystem Terms and Definitions
+
+Per the ISO Directives, the filesystem wording is not entitled to its own
+Terms and Definitions section. The corresponding terms have been converted
+to use our normal style of an italicized definition, the definitions have
+been incorporated into the relevant portion of the running text, and the
+[fs.definitions] subclause has been removed.
+
+## Minor editorial fixes
+
+A log of editorial fixes made to the working draft since N4687 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](https://github.com/cplusplus/draft/compare/n4687...n4700).
+
+ commit e3a5f29e3dbd60089a6371e5f16d5d507c429ea3
+ Author: Richard Smith
+ Date: Mon Oct 16 16:19:56 2017 -0700
+
+ [util.smartptr.shared.cmp] Fix overfull hbox.
+ [unique.ptr.special] Adjust to match changes to [util.smartptr.shared.cmp]
+ [tuple.cnstr] Adjust wording to avoid awkward linebreak within code
+ fragment.
+
+ commit d1ba29b57990161cbbcdbb3faf60aa9b67cc3274
+ Author: Akira Takahashi
+ Date: Tue Oct 17 01:29:14 2017 +0900
+
+ [util.smartptr.shared.cmp] Add "typename" for dependent name (#1770)
+
+ commit dbb1ea97f1cb57cab275ba4eec9def4b3daab97e
+ Author: Jens Maurer
+ Date: Mon Oct 16 16:20:06 2017 +0200
+
+ [unord.map.overview], [unord.multimap.overview] Use iter_val_t instead of iter_value_t (#1772)
+
+ commit b07fd6c53e0d5841b513192ebe08c047f3d05df4
+ Author: Jens Maurer
+ Date: Thu Apr 20 21:41:52 2017 +0200
+
+ Use 'well-formed' (with hyphen) consistently.
+
+ Fixes #1618.
+
+ commit af40423574aa8e3a495b382840a258f94cb6349d
+ Author: Jonathan Wakely
+ Date: Mon Jul 10 18:23:47 2017 +0100
+
+ [stringbuf.virtuals] Rephrase DR 453 resolution for seekoff
+
+ This avoids the requirement to compare newoff to zero when the value of
+ newoff hasn't been determined.
+
+ commit d6a3234838da05d460366c83d8ec524f42ea37a4
+ Author: Jens Maurer
+ Date: Fri Oct 6 22:29:52 2017 +0200
+
+ [thread.condition.condvarany] Remove note made incorrect by LWG 2135.
+
+ Fixes #1755.
+
+ commit dead61f32a2ed040745b668640924520d7b64c71
+ Author: Jonathan Wakely
+ Date: Fri Oct 13 20:28:20 2017 +0100
+
+ [fs.filesystem.syn] fix ordering of exists and equivalent
+
+ commit ac3ed314239fccf81cece3cf7aeabdced03e5032
+ Author: Jens Maurer
+ Date: Fri Oct 13 23:30:00 2017 +0200
+
+ [class.virtual] Correct function names in example comments.
+
+ Fixes #1740.
+
+ commit 0059794f5370697d647bf31cc434cf306ba08554
+ Author: Richard Smith
+ Date: Tue Oct 10 12:23:17 2017 -0700
+
+ Front matter: remove "Contents" entry from itself. Remove list of tables
+ and list of figures. Reorder cross-reference bullets in "Terms and
+ definitions".
+
+ As requested by ISO Central Secretariat.
+
+ commit 8b767974c25346ea4d8990ebe315ab8dfa45a3b9
+ Author: Jens Maurer
+ Date: Fri Oct 6 21:52:12 2017 +0200
+
+ [mem.res.private] Remove misleading 'typical' in note.
+
+ Fixes #1698.
+
+ commit 4a5ff4e7f947da6130a25900443317c18e879acf
+ Author: Thomas Köppe
+ Date: Tue Oct 3 13:41:04 2017 +0100
+
+ [time] Fix namespace for definitions in std::chrono
+
+ The previous commit ad767d39f1a0667470ded0e5eb3155fcdd55f465 accidentally added the wrong namespace "std" instead of "std::chrono".
+
+ commit 72647e7b03472315794872a10dfe2f2b74a2fa74
+ Author: Thomas Köppe
+ Date: Tue Oct 3 10:22:55 2017 +0100
+
+ [mem.res] Fix namespace for definitions in std::pmr
+
+ The previous commit ad767d39f1a0667470ded0e5eb3155fcdd55f465 accidentally added the wrong namespace "std" instead of "std::pmr".
+
+ commit eb035cf60c50ef8ad7d74ffdd5c2140f4179769a
+ Author: Thomas Köppe
+ Date: Tue Oct 3 01:01:53 2017 +0100
+
+ [memory.syn, unique.ptr] Add explanatory comments to make_unique overloads similar to the ones for make_shared, and mild presentational cleanup
+
+ commit ad767d39f1a0667470ded0e5eb3155fcdd55f465
+ Author: Thomas Köppe
+ Date: Tue Oct 3 00:18:23 2017 +0100
+
+ [utilities] Add missing "namespace std" to some class definitions
+
+ commit b888c3d0cbe078475562f2b4d5f45e1528e61c6e
+ Author: Thomas Köppe
+ Date: Tue Oct 3 00:08:23 2017 +0100
+
+ [containers] Remove repeated statement of relational operator declarations (#1759)
+
+ commit 1c43bc8685335048cd30042a712c0b40ff7f890a
+ Author: Thomas Köppe
+ Date: Mon Oct 2 22:55:20 2017 +0100
+
+ [unique.ptr, util.smartptr.shared] Remove redundant repetitions of declarations that already appear in the synopsis (#1758)
+
+ commit 6d9e8c6237230c1c09d7f265751caf8cd5a1e2dc
+ Author: Richard Smith
+ Date: Mon Sep 25 15:58:53 2017 -0700
+
+ [dcl.type.simple] Improve naming of template specialization in example.
+
+ commit 97f21603bd6a9a547b98394a85c1cc0f342f7273
+ Author: Richard Smith
+ Date: Mon Sep 25 15:45:43 2017 -0700
+
+ Fix '// Error' in examples to use '// error' instead.
+
+ commit fa958265bed2a99d6d9787705297dc34c749017a
+ Author: Thomas Köppe
+ Date: Mon Sep 25 23:45:52 2017 +0100
+
+ [thread.req.timing] Use mathematical symbols
+
+ commit 10c90ef815f10a800a3119476dc637c288c7c312
+ Author: Thomas Köppe
+ Date: Mon Sep 25 23:31:58 2017 +0100
+
+ [thread] Harmonize presentation of synopses and declarations
+
+ commit 9680eb724be8802b9823b234f0f5cad88a2efde9
+ Author: Richard Smith
+ Date: Mon Sep 25 11:49:13 2017 -0700
+
+ [ios.members.static] Fix case of first letter in footnotes.
+
+ commit 6a7b14ae0b0f74f3ee27f0ad1354920acc830558
+ Author: Richard Smith
+ Date: Mon Sep 25 09:32:47 2017 -0700
+
+ [string.assign] Add missing "Returns:".
+
+ commit 9177b4b733b7fe8d121647d5638040c1d059370e
+ Author: Thomas Köppe
+ Date: Mon Sep 18 13:44:55 2017 +0100
+
+ [allocator.requirements] Fix footnote within Table 31 and table placement
+
+ commit b6268620ee5cf87e4416f58e8f37995618b6495c
+ Author: Jonathan Wakely
+ Date: Tue Aug 15 13:34:46 2017 +0100
+
+ [futures.async] remove parens from DECAY_COPY()
+
+ commit 64c8b273fb401b845a851fc0361766943959d6d7
+ Author: timsong-cpp
+ Date: Sat Aug 12 01:03:02 2017 -0400
+
+ [diff.cpp14.library] Add Annex C entry for new headers in C++17
+
+ Fixes #1700.
+
+ commit 1a9b8ebecd1c4e2da29329be5d7bda696c8cfbed
+ Author: Richard Smith
+ Date: Tue Sep 12 11:53:46 2017 -0700
+
+ Convert "must"s in normative wording that do not indicate logical
+ necessity to a different form.
+
+ Normative requirements use "shall". Advice to users uses "should".
+ Description of the behavior of the implementation that does not of
+ itself constitute a requirement uses the imperative mood.
+
+ Fixes ISO 21 (C++17 DIS)
+
+ commit 6218c216178655ece30733a0ec8043af9a65bf2e
+ Author: Richard Smith
+ Date: Thu Sep 14 14:45:56 2017 -0700
+
+ Replace "this International Standard" with "this document" when
+ referring to the document as a body of text.
+
+ Cases where that phrasing is used to compare this standard to other
+ revisions of the C++ standard retain this phrasing for clarity.
+
+ Fixes ISO 20 (C++17 DIS)
+
+ commit 132326619d234a2b62819fd3a2cba6d9c654be23
+ Author: Richard Smith
+ Date: Thu Sep 14 14:00:40 2017 -0700
+
+ [support.start.term] Remove note that is not justified by normative
+ wording.
+
+ Fixes NB JP 7 (C++17 DIS)
+
+ commit 577968dc4de4674333510aea1d0e7da38c9e3bb6
+ Author: Richard Smith
+ Date: Mon Sep 11 16:51:59 2017 -0700
+
+ [temp.over.link] Change leading letter in comments in example to lowercase.
+
+ Fixes NB JP 6 (C++17 DIS)
+
+ commit 081894151eb9b8f628168af9fffc38b0cbd0f6cf
+ Author: Richard Smith
+ Date: Mon Sep 11 16:45:15 2017 -0700
+
+ [over.match.funcs] Remove the number of overload resolution contexts
+ from the introductory text.
+
+ It has become out of date relative to the actual number, and listing a
+ number here is not useful.
+
+ Fixes NB JP 5 (C++17 DIS)
+
+ commit 6b0c8352738bce937d5aa633aacb4cd3c3285acc
+ Author: Thomas Köppe
+ Date: Thu Sep 7 21:58:28 2017 +0100
+
+ [intro.defs, definitions, fs.definitions] change notes in Terms and Definitions to say "Note X to entry"
+
+ Fixes ISO 3 (C++17 DIS)
+
+ commit fa49082e030985ebdf3ecc91ece5cbdf72421338
+ Author: Richard Smith
+ Date: Mon Sep 11 16:30:12 2017 -0700
+
+ [fs] Integrate file system terms and definitions into the text at appropriate places.
+
+ Update xrefs to point to the relevant definitions.
+
+ Update index entries for constraint normalization to harmonize with
+ those for path normalization.
+
+ commit 60453da3081d8fa5753f48d2c78e1e78b1a3b079
+ Author: Richard Smith
+ Date: Mon Sep 11 11:40:41 2017 -0700
+
+ [fs.definitions] Replace "Terms and definitions" formatting with inline definitions.
+
+ These definitions do not satisfy ISO rules for a "Terms and definitions"
+ section, and in any case it does not make sense for FS to have its own
+ "Terms and definitions". Following our usual convention, we use inline
+ definitions for locally-scoped terms.
+
+ commit 5619b65614eae10510f337a1eacd05fc4308fe5c
+ Author: Richard Smith
+ Date: Thu Sep 7 14:40:23 2017 -0700
+
+ Update [intro.defs] and [definitions] to use (roughly) substitutable
+ phrases as definitions.
+
+ In particular, such phrases should not begin with an article. However,
+ for definitions of adjectives, a noun phrase is still used, because the
+ English language is not compatible with ISO's requirements.
+
+ commit a31fa795274e9fbb676b3ef2a8e60df12eb516b0
+ Author: Richard Smith
+ Date: Mon Sep 11 16:36:49 2017 -0700
+
+ [intro.refs] Remove redundant reference to C11 Technical Corrigendum 1.
+
+ When making a normative reference to another document, all relevant
+ Technical Corrigenda are assumed and need not be listed explicitly.
+
+ Fixes ISO 1 (C++17 DIS)
+
+ commit 1a4e554f910cdd1df3d2d8a62c2270dd1219eddc
+ Author: Thomas Köppe
+ Date: Thu Sep 7 20:02:06 2017 +0100
+
+ [any.cons] fix tag typename; "in_place" should be "in_place_type"
+
+ Fixes NB JP 10 (C++17 DIS)
+
+ commit 788b07ba87458c35228ecbdccb2e9dfac37eebf8
+ Author: Thomas Köppe
+ Date: Thu Sep 7 19:18:13 2017 +0100
+
+ [algorithms.parallel.user] remove stray full stop
+
+ Fixes NB JP 12 (C++17 DIS)
+
+ commit d0b014a78818c0c1cc4c7b2e96f1264990d06478
+ Author: Thomas Köppe
+ Date: Thu Sep 7 19:09:32 2017 +0100
+
+ [support.general, depr.cpp.headers] remove index entries for now-deprecated headers and symbols, and add missing index entries for deprecated headers.
+
+ Fixes NB JP 23 (C++17 DIS)
+
+ commit d9075c89a2539d5b3038c1a15b02673fe18589c3
+ Author: Jonathan Wakely
+ Date: Thu Sep 7 11:55:36 2017 +0100
+
+ [alg.reverse] remove duplicated Requires: element
+
+ Fixes NB JP 14 (C++17 DIS)
+
+ commit 27331fd3a2c8b3b78223712d56bbd51be1c9159b
+ Author: Eelis van der Weegen
+ Date: Sat Aug 12 18:14:44 2017 +0200
+
+ Consistently place footnote mark after sentence full stop, not before it.
+
+ commit be5c14cf44a6e6ea7348e65dbf99e3a8152c28ac
+ Author: Richard Smith
+ Date: Wed Aug 9 15:59:11 2017 -0700
+
+ [expr.prim.req.compound] Adjust description in example to be easier to understand.
+
+ commit c57ffb959dc939979111a4d1bcc31b71da643511
+ Author: Thomas Köppe
+ Date: Fri Aug 4 18:33:41 2017 +0100
+
+ [temp.deduct] Split long paragraph 8
+
+ commit e3b4927ea0f4e8c8bf1f7461226c729b4e2c00be
+ Author: Thomas Köppe
+ Date: Tue Aug 1 22:06:30 2017 +0100
+
+ [memory.syn, util.smartptr.shared] Add missing {make,allocate}_shared declarations to synopsis
+
+ We list those functions in two places: the main synopsis in [memory.syn], and also a smaller subset in [util.smartptr.shared] just for shared_ptr.
+
+ Also contains some minor presentational improvements for both instances.
+
+ Fixes #1697.
+
+ commit 355a20beb12ba9c26cb09d41159f7f68238dab7d
+ Author: timsong-cpp
+ Date: Tue Aug 1 04:14:14 2017 -0400
+
+ [defns.well.formed] remove full stop
diff --git a/source/access.tex b/source/access.tex
index 0698835c48..d43b9f468e 100644
--- a/source/access.tex
+++ b/source/access.tex
@@ -314,11 +314,11 @@
\tcode{protected}
members of the base class are accessible as
\tcode{private}
-members of the derived class\footnote{As specified previously in \ref{class.access},
+members of the derived class.\footnote{As specified previously in \ref{class.access},
private members of a base class remain inaccessible even to derived classes
unless
\tcode{friend}
-declarations within the base class definition are used to grant access explicitly.}.
+declarations within the base class definition are used to grant access explicitly.}
\pnum
In the absence of an
diff --git a/source/algorithms.tex b/source/algorithms.tex
index a32c43ea77..7d3ea7f46e 100644
--- a/source/algorithms.tex
+++ b/source/algorithms.tex
@@ -1231,7 +1231,7 @@
\rSec2[algorithms.parallel.defns]{Terms and definitions}
\pnum
-A \defn{parallel algorithm} is a function template listed in this International Standard with
+A \defn{parallel algorithm} is a function template listed in this document with
a template parameter named \tcode{ExecutionPolicy}.
\pnum
@@ -1284,7 +1284,7 @@
these parallel algorithms that could be formed by the invocation with the
specified default predicate or operation (where applicable) shall not directly
or indirectly modify objects via their arguments, nor shall they rely on the
-identity of the provided objects..
+identity of the provided objects.
\rSec2[algorithms.parallel.exec]{Effect of execution policies on algorithm execution}
@@ -1933,7 +1933,7 @@
\begin{itemdecl}
template
typename iterator_traits::difference_type
- count(InputIterator first, InputIterator last, const T& value);
+ count(InputIterator first, InputIterator last, const T& value);
template
typename iterator_traits::difference_type
count(ExecutionPolicy&& exec, ForwardIterator first, ForwardIterator last, const T& value);
@@ -1969,8 +1969,8 @@
\begin{itemdecl}
template
pair
- mismatch(InputIterator1 first1, InputIterator1 last1,
- InputIterator2 first2);
+ mismatch(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2);
template
pair
mismatch(ExecutionPolicy&& exec,
@@ -1980,8 +1980,8 @@
template
pair
- mismatch(InputIterator1 first1, InputIterator1 last1,
- InputIterator2 first2, BinaryPredicate pred);
+ mismatch(InputIterator1 first1, InputIterator1 last1,
+ InputIterator2 first2, BinaryPredicate pred);
template
pair
@@ -2050,7 +2050,7 @@
ForwardIterator2 first2);
template
+ class BinaryPredicate>
bool equal(InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, BinaryPredicate pred);
template
+ class BinaryPredicate>
bool equal(InputIterator1 first1, InputIterator1 last1,
InputIterator2 first2, InputIterator2 last2,
BinaryPredicate pred);
@@ -3201,7 +3201,8 @@
\begin{itemdescr}
\pnum
\requires
-\tcode{*first} shall be swappable\iref{swappable.requirements}.
+\tcode{BidirectionalIterator} shall satisfy the requirements of
+\tcode{ValueSwappable}\iref{swappable.requirements}.
\pnum
\effects
@@ -3212,11 +3213,6 @@
to all pairs of iterators
\tcode{first + i, (last - i) - 1}.
-\pnum
-\requires
-\tcode{BidirectionalIterator} shall satisfy the requirements of
-\tcode{ValueSwappable}\iref{swappable.requirements}.
-
\pnum
\complexity
Exactly
diff --git a/source/basic.tex b/source/basic.tex
index 3769455111..47346e411d 100644
--- a/source/basic.tex
+++ b/source/basic.tex
@@ -3280,8 +3280,8 @@
describes the lifetime of base and member subobjects. \end{note}
\pnum
-The properties ascribed to objects and references throughout this International
-Standard apply for a given object or reference only during its lifetime. \begin{note}
+The properties ascribed to objects and references throughout this document
+apply for a given object or reference only during its lifetime. \begin{note}
In particular, before the lifetime of an object starts and after its
lifetime ends there are significant restrictions on the use of the
object, as described below, in~\ref{class.base.init} and
@@ -3859,8 +3859,8 @@
\pnum
\indextext{Boolean type}%
Values of type \tcode{bool} are either \tcode{true} or
-\tcode{false}.\footnote{Using a \tcode{bool} value in ways described by this International
-Standard as ``undefined'', such as by examining the value of an
+\tcode{false}.\footnote{Using a \tcode{bool} value in ways described by this document
+as ``undefined'', such as by examining the value of an
uninitialized automatic object, might cause it to behave as if it is
neither \tcode{true} nor \tcode{false}.}
\begin{note} There are no \tcode{signed}, \tcode{unsigned}, \tcode{short},
@@ -3885,7 +3885,7 @@
begin with 1, and are multiplied by successive integral power of 2,
except perhaps for the bit with the highest position. (Adapted from the
\doccite{American National Dictionary for Information Processing Systems}.)}
-\begin{example} This International Standard permits two's complement,
+\begin{example} This document permits two's complement,
ones' complement and signed magnitude representations for integral types.
\end{example}
@@ -3907,7 +3907,7 @@
floating-point types}.
\indextext{floating-point type!implementation-defined}%
\begin{note}
-This International Standard imposes no requirements on the accuracy of
+This document imposes no requirements on the accuracy of
floating-point operations; see also~\ref{support.limits}.
\end{note}
Integral and floating types are collectively
@@ -4168,7 +4168,7 @@
\end{floattable}
\pnum
-In this International Standard, the notation \cv{} (or
+In this document, the notation \cv{} (or
\cvqual{cv1}, \cvqual{cv2}, etc.), used in the description of types,
represents an arbitrary set of cv-qualifiers, i.e., one of
\{\tcode{const}\}, \{\tcode{volatile}\}, \{\tcode{const},
diff --git a/source/compatibility.tex b/source/compatibility.tex
index dbd8b065b8..4ceb1fe85f 100644
--- a/source/compatibility.tex
+++ b/source/compatibility.tex
@@ -191,7 +191,7 @@
Those problems not found by typesafe linkage will continue to
function properly,
according to the ``layout compatibility rules'' of this
-International Standard.
+document.
\howwide
Common.
@@ -1112,8 +1112,8 @@
\change Additional restrictions on macro names.
\rationale Avoid hard to diagnose or non-portable constructs.
\effect
-Names of attribute identifiers may not be used as macro names. Valid \Cpp
-2003 code that defines \tcode{override}, \tcode{final},
+Names of attribute identifiers may not be used as macro names. Valid \CppIII
+code that defines \tcode{override}, \tcode{final},
\tcode{carries_dependency}, or \tcode{noreturn} as macros is invalid in this
International Standard.
@@ -1617,7 +1617,7 @@
};
struct derived : base {};
-derived d1{}; // Error. The code was well-formed before.
+derived d1{}; // error; the code was well-formed in \CppXIV
derived d2; // still OK
\end{codeblock}
@@ -1690,6 +1690,22 @@
\rSec2[diff.cpp14.library]{\ref{library}: library introduction}
+\ref{headers}
+\change New headers.
+\rationale New functionality.
+\effect
+The following \Cpp headers are new:
+\tcode{},
+\tcode{},
+\tcode{},
+\tcode{},
+\tcode{},
+\tcode{},
+and
+\tcode{}.
+Valid \CppXIV code that \tcode{\#include}{s} headers with these names may be
+invalid in this International Standard.
+
\ref{namespace.future}
\change New reserved namespaces.
\rationale Reserve namespaces for future revisions of the standard library
@@ -1856,8 +1872,10 @@
from the \Cpp standard library.
\pnum
-The headers \tcode{}, \tcode{}\iref{depr.cstdalign.syn},
-and \tcode{}\iref{depr.cstdbool.syn} are meaningless in \Cpp. Use of
+The headers \tcode{}\indextext{\idxhdr{ciso646}},
+\tcode{}\indextext{\idxhdr{cstdalign}}\iref{depr.cstdalign.syn},
+and \tcode{}\indextext{\idxhdr{cstdbool}}\iref{depr.cstdbool.syn}
+are meaningless in \Cpp. Use of
the \Cpp headers \tcode{}, \tcode{}, \tcode{},
and \tcode{} is deprecated\iref{depr.c.headers}.
diff --git a/source/config.tex b/source/config.tex
index d96308e84a..7da85d6d87 100644
--- a/source/config.tex
+++ b/source/config.tex
@@ -1,8 +1,8 @@
%!TEX root = std.tex
%%--------------------------------------------------
%% Version numbers
-\newcommand{\docno}{N4687}
-\newcommand{\prevdocno}{N4659}
+\newcommand{\docno}{N4700}
+\newcommand{\prevdocno}{N4687}
\newcommand{\cppver}{201703L}
%% Release date
diff --git a/source/containers.tex b/source/containers.tex
index dd36ee6247..b1c6112978 100644
--- a/source/containers.tex
+++ b/source/containers.tex
@@ -2932,6 +2932,7 @@
namespace std {
// \ref{array}, class template \tcode{array}
template struct array;
+
template
bool operator==(const array& x, const array& y);
template
@@ -2975,6 +2976,7 @@
namespace std {
// \ref{deque}, class template \tcode{deque}
template > class deque;
+
template
bool operator==(const deque& x, const deque& y);
template
@@ -2987,6 +2989,7 @@
bool operator>=(const deque& x, const deque& y);
template
bool operator<=(const deque& x, const deque& y);
+
template
void swap(deque& x, deque& y)
noexcept(noexcept(x.swap(y)));
@@ -3009,6 +3012,7 @@
namespace std {
// \ref{forwardlist}, class template \tcode{forward_list}
template > class forward_list;
+
template
bool operator==(const forward_list& x, const forward_list& y);
template
@@ -3021,6 +3025,7 @@
bool operator>=(const forward_list& x, const forward_list& y);
template
bool operator<=(const forward_list& x, const forward_list& y);
+
template
void swap(forward_list& x, forward_list& y)
noexcept(noexcept(x.swap(y)));
@@ -3043,6 +3048,7 @@
namespace std {
// \ref{list}, class template \tcode{list}
template > class list;
+
template
bool operator==(const list& x, const list& y);
template
@@ -3055,6 +3061,7 @@
bool operator>=(const list& x, const list& y);
template
bool operator<=(const list& x, const list& y);
+
template
void swap(list& x, list& y)
noexcept(noexcept(x.swap(y)));
@@ -3077,6 +3084,7 @@
namespace std {
// \ref{vector}, class template \tcode{vector}
template > class vector;
+
template
bool operator==(const vector& x, const vector& y);
template
@@ -3089,6 +3097,7 @@
bool operator>=(const vector& x, const vector& y);
template
bool operator<=(const vector& x, const vector& y);
+
template
void swap(vector& x, vector& y)
noexcept(noexcept(x.swap(y)));
@@ -3497,19 +3506,6 @@
deque(InputIterator, InputIterator, Allocator = Allocator())
-> deque::value_type, Allocator>;
- template
- bool operator==(const deque& x, const deque& y);
- template
- bool operator< (const deque& x, const deque& y);
- template
- bool operator!=(const deque& x, const deque& y);
- template
- bool operator> (const deque& x, const deque& y);
- template
- bool operator>=(const deque& x, const deque& y);
- template
- bool operator<=(const deque& x, const deque& y);
-
// \ref{deque.special}, specialized algorithms
template
void swap(deque& x, deque& y)
@@ -3805,11 +3801,9 @@
forward_list() : forward_list(Allocator()) { }
explicit forward_list(const Allocator&);
explicit forward_list(size_type n, const Allocator& = Allocator());
- forward_list(size_type n, const T& value,
- const Allocator& = Allocator());
+ forward_list(size_type n, const T& value, const Allocator& = Allocator());
template
- forward_list(InputIterator first, InputIterator last,
- const Allocator& = Allocator());
+ forward_list(InputIterator first, InputIterator last, const Allocator& = Allocator());
forward_list(const forward_list& x);
forward_list(forward_list&& x);
forward_list(const forward_list& x, const Allocator&);
@@ -3873,10 +3867,8 @@
// \ref{forwardlist.ops}, \tcode{forward_list} operations
void splice_after(const_iterator position, forward_list& x);
void splice_after(const_iterator position, forward_list&& x);
- void splice_after(const_iterator position, forward_list& x,
- const_iterator i);
- void splice_after(const_iterator position, forward_list&& x,
- const_iterator i);
+ void splice_after(const_iterator position, forward_list& x, const_iterator i);
+ void splice_after(const_iterator position, forward_list&& x, const_iterator i);
void splice_after(const_iterator position, forward_list& x,
const_iterator first, const_iterator last);
void splice_after(const_iterator position, forward_list&& x,
@@ -3904,19 +3896,6 @@
forward_list(InputIterator, InputIterator, Allocator = Allocator())
-> forward_list::value_type, Allocator>;
- template
- bool operator==(const forward_list& x, const forward_list& y);
- template
- bool operator< (const forward_list& x, const forward_list& y);
- template
- bool operator!=(const forward_list& x, const forward_list& y);
- template
- bool operator> (const forward_list& x, const forward_list& y);
- template
- bool operator>=(const forward_list& x, const forward_list& y);
- template
- bool operator<=(const forward_list& x, const forward_list& y);
-
// \ref{forwardlist.spec}, specialized algorithms
template
void swap(forward_list& x, forward_list& y)
@@ -4580,14 +4559,12 @@
iterator insert(const_iterator position, T&& x);
iterator insert(const_iterator position, size_type n, const T& x);
template
- iterator insert(const_iterator position, InputIterator first,
- InputIterator last);
+ iterator insert(const_iterator position, InputIterator first, InputIterator last);
iterator insert(const_iterator position, initializer_list il);
iterator erase(const_iterator position);
iterator erase(const_iterator position, const_iterator last);
- void swap(list&)
- noexcept(allocator_traits::is_always_equal::value);
+ void swap(list&) noexcept(allocator_traits::is_always_equal::value);
void clear() noexcept;
// \ref{list.ops}, list operations
@@ -4595,10 +4572,8 @@
void splice(const_iterator position, list&& x);
void splice(const_iterator position, list& x, const_iterator i);
void splice(const_iterator position, list&& x, const_iterator i);
- void splice(const_iterator position, list& x,
- const_iterator first, const_iterator last);
- void splice(const_iterator position, list&& x,
- const_iterator first, const_iterator last);
+ void splice(const_iterator position, list& x, const_iterator first, const_iterator last);
+ void splice(const_iterator position, list&& x, const_iterator first, const_iterator last);
void remove(const T& value);
template void remove_if(Predicate pred);
@@ -4623,19 +4598,6 @@
list(InputIterator, InputIterator, Allocator = Allocator())
-> list::value_type, Allocator>;
- template
- bool operator==(const list& x, const list& y);
- template
- bool operator< (const list& x, const list& y);
- template
- bool operator!=(const list& x, const list& y);
- template
- bool operator> (const list& x, const list& y);
- template
- bool operator>=(const list& x, const list& y);
- template
- bool operator<=(const list& x, const list& y);
-
// \ref{list.special}, specialized algorithms
template
void swap(list& x, list& y)
@@ -5300,19 +5262,6 @@
vector(InputIterator, InputIterator, Allocator = Allocator())
-> vector::value_type, Allocator>;
- template
- bool operator==(const vector& x, const vector& y);
- template
- bool operator< (const vector& x, const vector& y);
- template
- bool operator!=(const vector& x, const vector& y);
- template
- bool operator> (const vector& x, const vector& y);
- template
- bool operator>=(const vector& x, const vector& y);
- template
- bool operator<=(const vector& x, const vector& y);
-
// \ref{vector.special}, specialized algorithms
template
void swap(vector& x, vector& y)
@@ -5710,11 +5659,9 @@
vector() : vector(Allocator()) { }
explicit vector(const Allocator&);
explicit vector(size_type n, const Allocator& = Allocator());
- vector(size_type n, const bool& value,
- const Allocator& = Allocator());
+ vector(size_type n, const bool& value, const Allocator& = Allocator());
template
- vector(InputIterator first, InputIterator last,
- const Allocator& = Allocator());
+ vector(InputIterator first, InputIterator last, const Allocator& = Allocator());
vector(const vector& x);
vector(vector&& x);
vector(const vector&, const Allocator&);
@@ -5772,8 +5719,7 @@
iterator insert(const_iterator position, const bool& x);
iterator insert(const_iterator position, size_type n, const bool& x);
template
- iterator insert(const_iterator position,
- InputIterator first, InputIterator last);
+ iterator insert(const_iterator position, InputIterator first, InputIterator last);
iterator insert(const_iterator position, initializer_list il);
iterator erase(const_iterator position);
@@ -5880,6 +5826,7 @@
template ,
class Allocator = allocator>>
class map;
+
template
bool operator==(const map& x,
const map& y);
@@ -5898,6 +5845,7 @@
template
bool operator<=(const map& x,
const map& y);
+
template
void swap(map& x,
map& y)
@@ -5907,6 +5855,7 @@
template ,
class Allocator = allocator>>
class multimap;
+
template
bool operator==(const multimap& x,
const multimap& y);
@@ -5925,6 +5874,7 @@
template
bool operator<=(const multimap& x,
const multimap& y);
+
template