Created on 2011-08-30.00:00:00 last changed 142 months ago
Proposed resolution:
This wording is relative to the FDIS.
Change Table 28 — Allocator requirements in [allocator.requirements]:
| Expression | Return type | Assertion/note pre-/post-condition | Default |
|---|---|---|---|
|
X a1(a); X a1 = a; |
Shall not exit via an exception. post: a1 == a |
||
| … | |||
|
X a1(move(a)); X a1 = move(a); |
Shall not exit via an exception. post: a1 equals the prior value of a. |
||
Change [allocator.requirements] paragraph 4:
An allocator type X shall satisfy the requirements of CopyConstructible ([utility.arg.requirements]). The X::pointer, X::const_pointer, X::void_pointer, and X::const_void_pointer types shall satisfy the requirements of NullablePointer ([nullablepointer.requirements]). No constructor, comparison operator, copy operation, move operation, or swap operation on these types shall exit via an exception. X::pointer and X::const_pointer shall also satisfy the requirements for a random access iterator ([iterator.requirements]).
[ 2012, Portland: applied to WP ]
[ 2012, Kona ]
Move to Ready.
As discussed in c++std-lib-31054 and c++std-lib-31059, the Allocator requirements implicitly require CopyConstructible because a.select_on_container_copy_construction() and container.get_allocator() both return a copy by value, but the requirement is not stated explicitly anywhere.
In order to clarify that allocators cannot have 'explicit' copy constructors, the requirements should include CopyConstructible.| History | |||
|---|---|---|---|
| Date | User | Action | Args |
| 2014-02-20 13:20:35 | admin | set | status: wp -> c++14 |
| 2012-11-03 04:16:46 | admin | set | messages: + msg6266 |
| 2012-10-25 12:46:45 | admin | set | status: voting -> wp |
| 2012-10-16 15:35:12 | admin | set | status: ready -> voting |
| 2012-02-27 16:24:02 | admin | set | messages: + msg6020 |
| 2012-02-12 18:36:43 | admin | set | status: new -> ready |
| 2011-11-24 21:01:35 | admin | set | messages: + msg5896 |
| 2011-08-30 00:00:00 | admin | create | |