This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++14 status.
initializer_list, stuff) constructors are underspecifiedSection: 23.2.7 [associative.reqmts], 23.2.8 [unord.req] Status: C++14 Submitter: Stephan T. Lavavej Opened: 2013-09-21 Last modified: 2017-07-05
Priority: 0
View other active issues in [associative.reqmts].
View all other issues in [associative.reqmts].
View all issues with C++14 status.
Discussion:
23.2.7 [associative.reqmts] specifies both X(i,j) and X(i,j,c), but only X(il).
23.4.3.1 [map.overview] declares "map(initializer_list<value_type>, const Compare& = Compare(),
const Allocator& = Allocator());" but 23.4.3.2 [map.cons] intentionally doesn't explain it, relying
on the big table's requirements. As a result, map(il, c)'s behavior is not actually specified by the Standard.
(All of the other ordered associative containers also provide such constructors.)
[Issaquah 2014-02-11: Move to Immediate]
Proposed resolution:
This wording is relative to N3691.
Edit 23.2.7 [associative.reqmts], Table 102 — "Associative container requirements", as indicated:
Table 102 — Associative container requirements (in addition to container) (continued) Expression Return type Assertion/note pre-/post-condition Complexity …X(il);Same as X(il.begin(), il.end()).same asX(il.begin(), il.end()).…
Edit 23.2.8 [unord.req], Table 103 "Unordered associative container requirements", as indicated:
Table 103 — Unordered associative container requirements (in addition to container) Expression Return type Assertion/note pre-/post-condition Complexity …X(il)XSame as X(il.begin(), il.end()).Same as X(il.begin(), il.end()).…