Wording for GB 58 (original) (raw)
Note that the wording below goes slightly beyond the scope of GB 58 by removinginsert_return_type
from multimap
, multiset
,unordered_multimap
, and unordered_multiset
. It was a mistake to put insert_return_type
into these containers, and it is unused in these containers.
- Add a new section after 23.1.1 Node handles [container.node]:
23.1.2 Insert return type [container.insert_return_type]
The associative containers with unique keys, and the unordered containers with unique keys have a member function
insert
that returns a nested typeinsert_return_type
. That return type is a specialization of the type specified in this section.template <class Iterator, class NodeType>
struct INSERTRETURNTYPE
{
Iterator position;
bool inserted;
NodeType node;
};The name
_INSERTRETURNTYPE_
is exposition only._INSERTRETURNTYPE_
has the template parameters, data members, and special members specified above. It has no base classes or members other than those specified.
- Remove the row from Table 86 — Associative container requirements [associative.reqmts] that describes
X::insert_return_type
. - Remove the row from Table 87 — Unordered associative container requirements [unord.req] that describes
X::insert_return_type
. - Modify the synopsis of
map
in [map.overview]:using node_type = unspecified;
using insert_return_type =unspecified;INSERTRETURNTYPE<iterator, node_type>; - Modify the synopsis of
set
in [set.overview]:using node_type = unspecified;
using insert_return_type =unspecified;INSERTRETURNTYPE<iterator, node_type>; - Modify the synopsis of
unordered_map
in [unord.map.overview]:using node_type = unspecified;
using insert_return_type =unspecified;INSERTRETURNTYPE<iterator, node_type>; - Modify the synopsis of
unordered_set
in [unord.set.overview]:using node_type = unspecified;
using insert_return_type =unspecified;INSERTRETURNTYPE<iterator, node_type>;