This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.

763. Renaming emplace() overloads

Section: 21.2.6 [associative.reqmts] Status: NAD Submitter: Sylvain Pion Opened: 2007-12-04 Last modified: 2016-02-10

Priority: Not Prioritized

View other active issues in [associative.reqmts].

View all other issues in [associative.reqmts].

View all issues with NAD status.


The associative containers provide 2 overloads of emplace():

template <class... Args> pair<iterator, bool> emplace(Args&&... args);
template <class... Args> iterator emplace(const_iterator position, Args&&... args);

This is a problem if you mean the first overload while passing a const_iterator as first argument.

[ Related to 767 ]

[ Bellevue: ]

This can be disambiguated by passing "begin" as the first argument in the case when the non-default choice is desired. We believe that desire will be rare.

[For related discussion see 1302]

LWG N2680 renamed one of the overloads to emplace_hint.

Resolution: Change state to NAD.

Proposed resolution:

Rename one of the two overloads. For example to emplace_here, hint_emplace...