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]).