Section: 99 [allocator.propagation], 99 [allocator.propagation.map], 26 [containers] Status: Resolved Submitter: LWG Opened: 2009-06-28 Last modified: 2016-02-10
Priority: Not Prioritized
View all issues with Resolved status.
Addresses US 77
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.
Remove all references to the facilities in 20.8.4 and 20.8.5 from clause 23.
[ 2009-10 Santa Cruz: ]
NAD Editorial. Addressed by N2982.