iterator_traits<T*>
Section: 24.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:
iterator_traits<T*>
partial specialization in D.10
iterator_traits<T*>
from 24.3 synopsis
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*>;