This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of C++17 status.
2794. Missing requirements for allocator pointersSection: 23.2.2 [container.requirements.general] Status: C++17 Submitter: Billy O'Neal III Opened: 2016-11-09 Last modified: 2017-07-30
Priority: 0
View other active issues in [container.requirements.general].
View all other issues in [container.requirements.general].
View all issues with C++17 status.
Discussion:
Addresses US 146
An allocator-aware contiguous container must require an allocator whose pointer type is a contiguous iterator. Otherwise, functions like data forbasic_string
and vector
do not work correctly, along with many other expectations of the contiguous guarantee. Suggested resolution: Add a second sentence to 23.2.2 [container.requirements.general] p13:
An allocator-aware contiguous container requires
allocator_traits<Allocator>::pointer
is a contiguous iterator.
[2016-11-12, Issaquah]
Sat PM: Move to 'Tentatively Ready'
Proposed resolution:
This wording is relative to N4606.
In 16.4.4.6 [allocator.requirements]/5, edit as follows:
-5- An allocator type
X
shall satisfy the requirements ofCopyConstructible
(17.6.3.1). TheX::pointer
,X::const_pointer
,X::void_pointer
, andX::const_void_pointer
types shall satisfy the requirements ofNullablePointer
(17.6.3.3). No constructor, comparison operator, copy operation, move operation, or swap operation on these pointer types shall exit via an exception.X::pointer
andX::const_pointer
shall also satisfy the requirements for a random access iterator ( 24.3 [iterator.requirements] 24.3.5.7 [random.access.iterators]) and of a contiguous iterator (24.3.1 [iterator.requirements.general]).
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4