This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD Concepts status.
Section: 25.2 [iterator.synopsis] Status: NAD Concepts Submitter: Alisdair Meredith Opened: 2009-05-28 Last modified: 2021-06-06
Priority: Not Prioritized
View all other issues in [iterator.synopsis].
View all issues with NAD Concepts status.
Discussion:
The <iterator> header synopsis declares a partial specialization of iterator_traits to support pointers, [iterator.syn]. The implication is that specialization will be described in D10, yet it did not follow the rest of the deprecated material into this clause.
However, this is not as bad as it first seems! There are partial specializations of iterator_traits for types that satisfy the various Iterator concepts, and there are concept_maps for pointers to explicitly support the RandomAccessIterator concept, so the required template will be present - just not in the manner advertised.
I can see two obvious solutions:
I recommend option (ii) in the wording below
Option (ii) could be extended to strike all the declarations of deprecated material from the synopsis, as it is effectively duplicating D.10 anyway. This is the approach taken for deprecated library components in the 98/03 standards. This is probably a matter best left to the Editor though.
Proposed resolution:
In [iterator.syn] strike:
template<class T> struct iterator_traits<T*>;