further edits attempting to get the requirements section right

[SVN r21341]
This commit is contained in:
Jeremy Siek
2003-12-19 16:47:47 +00:00
parent 8997a587e9
commit 81242ad5ae

View File

@ -70,15 +70,24 @@ as follows::
``indirect_iterator`` requirements ``indirect_iterator`` requirements
.................................. ..................................
The ``Iterator`` type must meet the requirements of Readable The ``CategoryOrTraversal`` argument shall be one of the standard
Iterator. Also, the following requirements are placed on iterator tags or ``use_default``. If ``CategoryOrTraversal`` is an
``iterator_traits<Iterator>::value_type``. Let ``i`` be an object of iterator tag, ``indirect_iterator`` satisfies the requirements
type ``iterator_traits<Iterator>::value_type``. Then ``*i`` must be a corresponding to the iterator tag. The template parameter ``Iterator``
valid expression, and the type of ``*i`` must be convertible to argument shall meet the requirements corresponding to the iterator
``iterator_adaptor::reference``. Also, there are further requirements tag. If ``CategoryOrTraversal`` is ``use_default`` then the
on the ``iterator_traits<Iterator>::value_type`` if the ``Value`` ``Iterator`` argument shall meet the requirements of Readable
parameter is not ``use_default``, as implied by the algorithm for deducing Iterator. In this case, ``indirect_iterator`` satisfies the
the default. requirements of the most refined standard traversal concept that is
satisfied by the ``Iterator`` argument.
The expression ``*i``, where ``i`` is an object of type
``iterator_traits<Iterator>::value_type``, must be a valid expression
and must be convertible to ``indirect_iterator::reference`` Also,
there are further requirements on the
``iterator_traits<Iterator>::value_type`` if the ``Value`` parameter
is not ``use_default``, as implied by the algorithm for deducing the
default.