Section: 23.2.8 [unord.req] Status: NAD Submitter: Alisdair Meredith Opened: 2012-10-09 Last modified: 2016-11-21
Priority: 3
View other active issues in [unord.req].
View all other issues in [unord.req].
View all issues with NAD status.
Discussion:
The default constructor, allocator-aware constructor, and range-based constructors
for the unordered containers do not offer a means to control the initial
max_load_factor
, so the standard mandates the value 1.0. This seems overly
restrictive, as there is plenty of research suggesting a value between 0.5 and 1.0
is more often optimal for unique-key containers, and perhaps a slightly higher
value might be appropriate for multi-containers.
Rather than guess at the appropriate max_load_factor
, it seems reasonable
that the standard should allow vendors to pick a value at their discretion, with
perhaps a note of advice. It is less clear whether the default value should be
implementation-defined or unspecified, given the ease of a user determining this
by querying this attribute immediately after construction.
[2013-03-15 Issues Teleconference]
Moved to Open.
Alisdair to provide wording.
Marshall: It seems to me that what you really want is to be able to pass a max load factor in the constructor, but that's a different issue.
Alisdair agrees in principle, but concerned with adding yet more constructors to these classes.
[2016-11-12, Issaquah]
NAD - if someone wants to come back with a paper exploring design alternatives, we can re-open.
Proposed resolution: