Title
Allocator-specific move/copy break model of move-constructor and move-assignment
Status
resolved
Section
[allocator.propagation][allocator.propagation.map] [containers]
Submitter
LWG

Created on 2009-06-28.00:00:00 last changed 162 months ago

Messages

Date: 2010-12-05.14:14:49

[ 2009-10 Santa Cruz: ]

NAD EditorialResolved. Addressed by N2982.

Date: 2009-06-28.00:00:00

Addresses US 77

Description

Allocator-specific move and copy behavior for containers (N2525) complicates a little-used and already-complicated portion of the standard library (allocators), and breaks the conceptual model of move-constructor and move-assignment operations on standard containers being efficient operations. The extensions for allocator-specific move and copy behavior should be removed from the working paper.

With the introduction of rvalue references, we are teaching programmers that moving from a standard container (e.g., a vector<string>) is an efficient, constant-time operation. The introduction of N2525 removed that guarantee; depending on the behavior of four different traits (20.8.4), the complexity of copy and move operations can be constant or linear time. This level of customization greatly increases the complexity of standard containers, and benefits only a tiny fraction of the C++ community.

Suggestion

Remove 20.8.4.

Remove 20.8.5.

Remove all references to the facilities in 20.8.4 and 20.8.5 from clause 23.

History
Date User Action Args
2010-12-05 14:14:49adminsetstatus: nad editorial -> resolved
2010-10-21 18:28:33adminsetmessages: + msg985
2009-06-28 00:00:00admincreate