WG21 approved P3503R3 (by me and Nicolas Morales) in Sofia, 2025. The
change is to make std::promise and std::packaged_task be constructible
with an allocator, but not to support general uses-allocator
construction. So they do not have specializations of std::uses_allocator
and do not have an allocator-extended version of every normal
constructor (i.e., no allocator-extended move constructors and for
std::packaged_task, no allocator-extended default constructor).
Since the changes were originally proposed as resolutions to LWG 2095
and LWG 3003, this treats the change as a DR for all standard versions
from C++11 up. This means the constructor semantics are consistent (and
sensible) for all standard versions.
Because I pre-emptively implemented the original resolution of LWG 2095
(in r0-112872-g376d7c51ece6f8), we need to remove the allocator-extended
constructors of std::promise and std::packaged_task which I added but
which are not in the working draft after the P3503R3 changes.
To restore the packaged_task(allocator_arg_t, const Alloc&, F&&)
constructor that was removed by LWG 2921 we just need to remove the #if
that disabled it for C++17 and later.
Finally, we need to remove the std::uses_allocator partial
specialization for std::promise (removed by P3503R3) and the one for
std::packaged_task (already disabled for C++17 and later by LWG 2976).
libstdc++-v3/ChangeLog:
* doc/xml/manual/evolution.xml: Document constructor changes.
* doc/html/*: Regenerate.
* include/std/future (uses_allocator): Remove specializations
for std::promise and std::packaged_task.
(promise(allocator_arg_t, const Alloc&, promise&&)): Remove
constructor proposed for LWG 2095 but not in P3503R3.
(packaged_task(allocator_arg_t, const Alloc&)): Likewise.
(packaged_task(allocator_arg_t, const Alloc&, packaged_task&&)):
Likewise.
(packaged_task(allocator_arg_t, const Alloc&, F&&)): Restore
constructor for C++20 and later.
* testsuite/30_threads/packaged_task/uses_allocator.cc: Adjust
expected result for static_assert.
* testsuite/30_threads/promise/uses_allocator.cc: Likewise.
---
Tested x86_64-linux.
Since I want to treat this as a DR for older standards, it might seem
worth backporting. However, it changes the API of std::promise and
std::packaged_task, even if it's unlikely anybody is actually using
these allocator-extended constructors. We should at least see how much
fallout there is from the change on trunk, then consider backports
later.
libstdc++-v3/doc/html/index.html | 2 +-
libstdc++-v3/doc/html/manual/api.html | 4 +
libstdc++-v3/doc/html/manual/appendix.html | 2 +-
.../doc/html/manual/appendix_porting.html | 2 +-
libstdc++-v3/doc/html/manual/index.html | 2 +-
libstdc++-v3/doc/xml/manual/evolution.xml | 8 ++
libstdc++-v3/include/std/future | 76 ++++---------------
.../packaged_task/uses_allocator.cc | 6 +-
.../30_threads/promise/uses_allocator.cc | 4 +-
9 files changed, 34 insertions(+), 72 deletions(-)
diff --git a/libstdc++-v3/doc/html/index.html b/libstdc++-v3/doc/html/index.html
index 782f3bbc299c..857de004c951 100644
--- a/libstdc++-v3/doc/html/index.html
+++ b/libstdc++-v3/doc/html/index.html
@@ -142,7 +142,7 @@
Existing tests
</a></span></dt><dt><span class="section"><a
href="manual/test.html#test.exception.safety.containers">
C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="manual/abi.html">ABI Policy and
Guidelines</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="manual/abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/abi.html#abi.changes_allowed">Allowed
Changes</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="manual/abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_16"><code
class="constant">16</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="manual/backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a
href="manual/backwards.html#backwards.third.headers">Pre-ISO headers
removed</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.hash">Extension headers hash_map,
hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="manual/abi.html">ABI Policy and
Guidelines</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="manual/abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/abi.html#abi.changes_allowed">Allowed
Changes</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="manual/abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="manual/abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="manual/abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="manual/api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="manual/api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_16"><code
class="constant">16</code></a></span></dt><dt><span class="section"><a
href="manual/api.html#api.rel_17"><code
class="constant">17</code></a></span></dt></dl></dd><dt><span
class="section"><a href="manual/backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="manual/backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="manual/backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="manual/backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a
href="manual/backwards.html#backwards.third.headers">Pre-ISO headers
removed</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.hash">Extension headers hash_map,
hash_set moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a
href="manual/backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/api.html
b/libstdc++-v3/doc/html/manual/api.html
index f004ddc166d8..4fce14127ef8 100644
--- a/libstdc++-v3/doc/html/manual/api.html
+++ b/libstdc++-v3/doc/html/manual/api.html
@@ -515,4 +515,8 @@ Deprecated the non-standard overload of <code
class="code">std::fabs</code> for
</p><p>
Made <code class="code">std::is_integral_v<__int128></code> true for
strict
<code class="code">-std</code> dialects.
+</p></div><div class="section"><div class="titlepage"><div><div><h3
class="title"><a id="api.rel_17"></a><code
class="constant">17</code></h3></div></div></div><p>
+Removed allocator-extended constructors and support for uses-allocator
+construction from <code class="classname">std::promise</code> and
+<code class="classname">std::packaged_task</code>.
</p></div></div><div class="navfooter"><hr /><table width="100%"
summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p"
href="abi.html">Prev</a>Â </td><td width="20%" align="center"><a accesskey="u"
href="appendix_porting.html">Up</a></td><td width="40%" align="right">Â <a
accesskey="n" href="backwards.html">Next</a></td></tr><tr><td width="40%"
align="left" valign="top">ABI Policy and Guidelines </td><td width="20%"
align="center"><a accesskey="h" href="../index.html">Home</a></td><td
width="40%" align="right" valign="top">Â Backwards
Compatibility</td></tr></table></div></body></html>
\ No newline at end of file
diff --git a/libstdc++-v3/doc/html/manual/appendix.html
b/libstdc++-v3/doc/html/manual/appendix.html
index e71ea5423a0a..bb9184bcb217 100644
--- a/libstdc++-v3/doc/html/manual/appendix.html
+++ b/libstdc++-v3/doc/html/manual/appendix.html
@@ -16,7 +16,7 @@
Existing tests
</a></span></dt><dt><span class="section"><a
href="test.html#test.exception.safety.containers">
C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_17"><code
class="constant">17</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/appendix_porting.html
b/libstdc++-v3/doc/html/manual/appendix_porting.html
index dc46db3086a6..028c766b5345 100644
--- a/libstdc++-v3/doc/html/manual/appendix_porting.html
+++ b/libstdc++-v3/doc/html/manual/appendix_porting.html
@@ -14,7 +14,7 @@
Existing tests
</a></span></dt><dt><span class="section"><a
href="test.html#test.exception.safety.containers">
C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_17"><code
class="constant">17</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/html/manual/index.html
b/libstdc++-v3/doc/html/manual/index.html
index fb61205678f2..8a13efcfbc45 100644
--- a/libstdc++-v3/doc/html/manual/index.html
+++ b/libstdc++-v3/doc/html/manual/index.html
@@ -123,7 +123,7 @@
Existing tests
</a></span></dt><dt><span class="section"><a
href="test.html#test.exception.safety.containers">
C++11 Requirements Test Sequence Descriptions
-</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
+</a></span></dt></dl></dd></dl></dd></dl></dd><dt><span class="section"><a
href="abi.html">ABI Policy and Guidelines</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.cxx_interface">The C++
Interface</a></span></dt><dt><span class="section"><a
href="abi.html#abi.versioning">Versioning</a></span></dt><dd><dl><dt><span
class="section"><a
href="abi.html#abi.versioning.goals">Goals</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.history">History</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.prereq">Prerequisites</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.versioning.config">Configuring</a></span></dt><dt><span
class="section"><a href="abi.html#abi.versioning.active">Checking
Active</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.changes_allowed">Allowed Changes</a></span></dt><dt><span
class="section"><a href="abi.html#abi.changes_no">Prohibited
Changes</a></span></dt><dt><span class="section"><a
href="abi.html#abi.impl">Implementation</a></span></dt><dt><span
class="section"><a
href="abi.html#abi.testing">Testing</a></span></dt><dd><dl><dt><span
class="section"><a href="abi.html#abi.testing.single">Single ABI
Testing</a></span></dt><dt><span class="section"><a
href="abi.html#abi.testing.multi">Multiple ABI
Testing</a></span></dt></dl></dd><dt><span class="section"><a
href="abi.html#abi.issues">Outstanding
Issues</a></span></dt></dl></dd><dt><span class="section"><a
href="api.html">API Evolution and Deprecation
History</a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_300"><code
class="constant">3.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_310"><code
class="constant">3.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_320"><code
class="constant">3.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_330"><code
class="constant">3.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_340"><code
class="constant">3.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_400"><code
class="constant">4.0</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_410"><code
class="constant">4.1</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_420"><code
class="constant">4.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_430"><code
class="constant">4.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_440"><code
class="constant">4.4</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_450"><code
class="constant">4.5</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_460"><code
class="constant">4.6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_470"><code
class="constant">4.7</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_480"><code
class="constant">4.8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_490"><code
class="constant">4.9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_51"><code
class="constant">5</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_53"><code
class="constant">5.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_61"><code
class="constant">6</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_71"><code
class="constant">7</code></a></span></dt><dd><dl><dt><span class="section"><a
href="api.html#api.rel_72"><code
class="constant">7.2</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_73"><code
class="constant">7.3</code></a></span></dt></dl></dd><dt><span
class="section"><a href="api.html#api.rel_81"><code
class="constant">8</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_91"><code
class="constant">9</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_101"><code
class="constant">10</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_111"><code
class="constant">11</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_121"><code
class="constant">12</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_123"><code
class="constant">12.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_131"><code
class="constant">13</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_133"><code
class="constant">13.3</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_141"><code
class="constant">14</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_151"><code
class="constant">15</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_16"><code
class="constant">16</code></a></span></dt><dt><span class="section"><a
href="api.html#api.rel_17"><code
class="constant">17</code></a></span></dt></dl></dd><dt><span
class="section"><a href="backwards.html">Backwards
Compatibility</a></span></dt><dd><dl><dt><span class="section"><a
href="backwards.html#backwards.first">First</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.second">Second</a></span></dt><dt><span
class="section"><a
href="backwards.html#backwards.third">Third</a></span></dt><dd><dl><dt><span
class="section"><a href="backwards.html#backwards.third.headers">Pre-ISO
headers removed</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.hash">Extension headers hash_map, hash_set
moved to ext or backwards</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.nocreate_noreplace">No <code
class="code">ios::nocreate/ios::noreplace</code>.
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.streamattach">
No <code class="code">stream::attach(int fd)</code>
</a></span></dt><dt><span class="section"><a
href="backwards.html#backwards.third.support_cxx98">
diff --git a/libstdc++-v3/doc/xml/manual/evolution.xml
b/libstdc++-v3/doc/xml/manual/evolution.xml
index 911db8a7538b..2ebdebc98204 100644
--- a/libstdc++-v3/doc/xml/manual/evolution.xml
+++ b/libstdc++-v3/doc/xml/manual/evolution.xml
@@ -1164,4 +1164,12 @@ Made <code>std::is_integral_v<__int128></code>
true for strict
</para>
</section>
+<section
xml:id="api.rel_17"><info><title><constant>17</constant></title></info>
+<para>
+Removed allocator-extended constructors and support for uses-allocator
+construction from <classname>std::promise</classname> and
+<classname>std::packaged_task</classname>.
+</para>
+</section>
+
</section>
diff --git a/libstdc++-v3/include/std/future b/libstdc++-v3/include/std/future
index 693c52037b52..96a852e60cdc 100644
--- a/libstdc++-v3/include/std/future
+++ b/libstdc++-v3/include/std/future
@@ -52,7 +52,6 @@
#include <bits/shared_ptr.h>
#include <bits/std_function.h>
#include <bits/std_thread.h>
-#include <bits/uses_allocator.h>
#include <ext/aligned_buffer.h>
namespace std _GLIBCXX_VISIBILITY(default)
@@ -1112,22 +1111,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_storage(new _Res_type())
{ }
- promise(promise&& __rhs) noexcept
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
-
template<typename _Allocator>
promise(allocator_arg_t, const _Allocator& __a)
: _M_future(std::allocate_shared<_State>(__a)),
_M_storage(__future_base::_S_allocate_result<_Res>(__a))
{ }
- template<typename _Allocator>
- promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
+ promise(promise&& __rhs) noexcept
+ : _M_future(std::move(__rhs._M_future)),
+ _M_storage(std::move(__rhs._M_storage))
+ { }
promise(const promise&) = delete;
@@ -1207,11 +1200,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
swap(promise<_Res>& __x, promise<_Res>& __y) noexcept
{ __x.swap(__y); }
- template<typename _Res, typename _Alloc>
- struct uses_allocator<promise<_Res>, _Alloc>
- : public true_type { };
-
-
/// Partial specialization for promise<R&>
template<typename _Res>
class promise<_Res&>
@@ -1231,22 +1219,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_storage(new _Res_type())
{ }
- promise(promise&& __rhs) noexcept
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
-
template<typename _Allocator>
promise(allocator_arg_t, const _Allocator& __a)
: _M_future(std::allocate_shared<_State>(__a)),
_M_storage(__future_base::_S_allocate_result<_Res&>(__a))
{ }
- template<typename _Allocator>
- promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
+ promise(promise&& __rhs) noexcept
+ : _M_future(std::move(__rhs._M_future)),
+ _M_storage(std::move(__rhs._M_storage))
+ { }
promise(const promise&) = delete;
@@ -1329,24 +1311,16 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
_M_storage(new _Res_type())
{ }
- promise(promise&& __rhs) noexcept
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
-
template<typename _Allocator>
promise(allocator_arg_t, const _Allocator& __a)
: _M_future(std::allocate_shared<_State>(__a)),
_M_storage(__future_base::_S_allocate_result<void>(__a))
{ }
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
- // 2095. missing constructors needed for uses-allocator construction
- template<typename _Allocator>
- promise(allocator_arg_t, const _Allocator&, promise&& __rhs)
- : _M_future(std::move(__rhs._M_future)),
- _M_storage(std::move(__rhs._M_storage))
- { }
+ promise(promise&& __rhs) noexcept
+ : _M_future(std::move(__rhs._M_future)),
+ _M_storage(std::move(__rhs._M_storage))
+ { }
promise(const promise&) = delete;
@@ -1575,33 +1549,17 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
: _M_state(_Task_state<_Fn>::_S_create(std::forward<_Fn>(__fn), {}))
{ }
-#if __cplusplus < 201703L
// _GLIBCXX_RESOLVE_LIB_DEFECTS
// 2097. packaged_task constructors should be constrained
// 2407. [this constructor should not be] explicit
// 2921. packaged_task and type-erased allocators
+ // 3003. <future> still has type-erased allocators in promise
template<typename _Fn, typename _Alloc, typename = __not_same<_Fn>>
packaged_task(allocator_arg_t, const _Alloc& __a, _Fn&& __fn)
: _M_state(_Task_state<_Fn, _Alloc>::_S_create(std::forward<_Fn>(__fn),
__a))
{ }
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
- // 2095. missing constructors needed for uses-allocator construction
- template<typename _Allocator>
- packaged_task(allocator_arg_t, const _Allocator&) noexcept
- { }
-
- template<typename _Allocator>
- packaged_task(allocator_arg_t, const _Allocator&,
- const packaged_task&) = delete;
-
- template<typename _Allocator>
- packaged_task(allocator_arg_t, const _Allocator&,
- packaged_task&& __other) noexcept
- { this->swap(__other); }
-#endif
-
~packaged_task()
{
if (static_cast<bool>(_M_state) && !_M_state.unique())
@@ -1678,14 +1636,6 @@ _GLIBCXX_BEGIN_NAMESPACE_VERSION
packaged_task<_Res(_ArgTypes...)>& __y) noexcept
{ __x.swap(__y); }
-#if __cplusplus < 201703L
- // _GLIBCXX_RESOLVE_LIB_DEFECTS
- // 2976. Dangling uses_allocator specialization for packaged_task
- template<typename _Res, typename _Alloc>
- struct uses_allocator<packaged_task<_Res>, _Alloc>
- : public true_type { };
-#endif
-
/// @cond undocumented
// Shared state created by std::async().
diff --git a/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
b/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
index c9b9f088f2f8..3b458a341bbc 100644
--- a/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
+++ b/libstdc++-v3/testsuite/30_threads/packaged_task/uses_allocator.cc
@@ -1,4 +1,4 @@
-// { dg-do compile { target { c++11_only || c++14_only } } }
+// { dg-do compile { target c++11 } }
// { dg-require-gthreads "" }
// Copyright (C) 2011-2026 Free Software Foundation, Inc.
@@ -25,5 +25,5 @@
using std::uses_allocator;
using std::allocator;
using std::packaged_task;
-static_assert( uses_allocator<packaged_task<int()>, allocator<int>>::value,
- "packaged_task supports uses-allocator construction" );
+static_assert( ! uses_allocator<packaged_task<int()>, allocator<int>>::value,
+ "packaged_task does not support uses-allocator construction" );
diff --git a/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
b/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
index 398d4f108b60..1233ef47a3ad 100644
--- a/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
+++ b/libstdc++-v3/testsuite/30_threads/promise/uses_allocator.cc
@@ -25,5 +25,5 @@
using std::uses_allocator;
using std::allocator;
using std::promise;
-static_assert( uses_allocator<promise<int>, allocator<int>>::value,
- "promise supports uses-allocator construction" );
+static_assert( ! uses_allocator<promise<int>, allocator<int>>::value,
+ "promise does not support uses-allocator construction" );
--
2.54.0