Proposed resolution:
This wording is relative to N4910.
Modify [associative.reqmts.general] as indicated:
a.extract(q)-108- Result: node_type
-109- Effects: Removes the element pointed to by q.
-110- Returns: A node_type owning that element.
-111- Complexity: Amortized constant.
a.extract(r)-?- Result: node_type
-?- Effects: Removes the element pointed to by r.
-?- Returns: A node_type owning that element.
-?- Complexity: Amortized constant.
Modify [unord.req.general] as indicated:
a.extract(q)-141- Result: node_type
-142- Effects: Removes the element pointed to by q.
-143- Returns: A node_type owning that element.
-144- Complexity: Average case 𝒪(1), worst case 𝒪(a.size()).
a.extract(r)-?- Result: node_type
-?- Effects: Removes the element pointed to by r.
-?- Returns: A node_type owning that element.
-?- Complexity: Average case 𝒪(1), worst case 𝒪(a.size()).
Modify [map.overview], class template map synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [multimap.overview], class template multimap synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [set.overview], class template set synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [multiset.overview], class template multiset synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [unord.map.overview], class template unordered_map synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [unord.multimap.overview], class template unordered_multimap synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [unord.set.overview], class template unordered_set synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]
Modify [unord.multiset.overview], class template unordered_multiset synopsis, as indicated:
[…] node_type extract(iterator position); node_type extract(const_iterator position); node_type extract(const key_type& x); […]