Title
Missing definition of iterator_traits<T*>
Status
nad concepts
Section
[iterator.synopsis]
Submitter
Alisdair Meredith

Created on 2009-05-28.00:00:00 last changed 171 months ago

Messages

Date: 2010-10-21.18:28:33

Proposed resolution:

In [iterator.syn] strike:

template<class T> struct iterator_traits<T*>;
Date: 2009-05-28.00:00:00

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:

  1. Restore the iterator_traits<T*> partial specialization in D.10
  2. Remove the declaration of 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.

History
Date User Action Args
2010-10-21 18:28:33adminsetmessages: + msg843
2009-05-28 00:00:00admincreate