This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++11 status.
Section: 24.2.8 [unord.req] Status: C++11 Submitter: Daniel Krügler Opened: 2009-02-08 Last modified: 2016-01-28
Priority: Not Prioritized
View other active issues in [unord.req].
View all other issues in [unord.req].
View all issues with C++11 status.
Discussion:
Refering to N2800 all container requirements tables (including those for associative containers) provide useful member function overloads accepting std::initializer_list as argument, the only exception is Table 87. There seems to be no reason for not providing them, because 24.5 [unord] is already initializer_list-aware. For the sake of library interface consistency and user-expectations corresponding overloads should be added to the table requirements of unordered containers as well.
[ Batavia (2009-05): ]
We agree with the proposed resolution.
Move to Tentatively Ready.
Proposed resolution:
In 24.2.8 [unord.req]/9 insert:
... [q1, q2) is a valid range in a, il designates an object of type initializer_list<value_type>, t is a value of type X::value_type, ...
In 24.2.8 [unord.req], Table 87 insert:
Table 87 - Unordered associative container requirements (in addition to container) Expression Return type Assertion/note
pre-/post-conditionComplexity X(i, j)
X a(i, j)X ... ... X(il) X Same as X(il.begin(), il.end()). Same as X(il.begin(), il.end()). ... ... ... ... a = b X ... ... a = il X& a = X(il); return *this; Same as a = X(il). ... ... ... ... a.insert(i, j) void ... ... a.insert(il) void Same as a.insert(il.begin(), il.end()). Same as a.insert(il.begin(), il.end()).