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.

### 981. Unordered container requirements should add `initializer_list` support

Section: 22.2.7 [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 22.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 22.2.7 [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 22.2.7 [unord.req], Table 87 insert:

> Table 87 - Unordered associative container requirements (in addition to container)
> Expression | Return type | Assertion/note pre-/post-condition | Complexity
> --- | --- | --- | ---
> `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())`.