Some progress on indirect_iterator

[SVN r21704]
This commit is contained in:
Dave Abrahams
2004-01-13 20:22:58 +00:00
parent 482c0cf52b
commit 9540444061
8 changed files with 220 additions and 102 deletions

View File

@ -44,21 +44,21 @@ following pseudo-code. We use the abbreviation
``V=iterator_traits<Iterator>::value_type``.::
if (Value is use_default) then
typedef iterator_traits<V>::value_type value_type;
typedef remove_const<pointee<V>::type>::type value_type;
else
typedef remove_const<Value>::type value_type;
if (Reference is use_default) then
if (Value is use_default) then
typedef iterator_traits<V>::reference reference;
typedef indirect_reference<V>::type reference;
else
typedef Value& reference;
else
typedef Reference reference;
if (Value is use_default) then
typedef iterator_traits<V>::value_type* pointer;
else
if (Value is use_default) then
typedef pointee<V>::type* pointer;
else
typedef Value* pointer;
if (Difference is use_default)
@ -70,7 +70,7 @@ following pseudo-code. We use the abbreviation
If ``CategoryOrTraversal`` is not ``use_default`` then
``iterator_category`` is ``CategoryOrTraversal``. Otherwise
``iterator_category`` is a type convertible to the tag determined by
the following algorithm. Let ``C`` be ``traveral_category<Iterator>::type``.
the following algorithm. Let ``C`` be ``traversal_category<Iterator>::type``.
::
@ -85,8 +85,6 @@ the following algorithm. Let ``C`` be ``traveral_category<Iterator>::type``.
input_iterator_tag
``indirect_iterator`` requirements
..................................