diff --git a/iterator_adaptors.htm b/iterator_adaptors.htm
index 07632a9..660d6df 100644
--- a/iterator_adaptors.htm
+++ b/iterator_adaptors.htm
@@ -65,7 +65,7 @@
- Specialized Iterator Adaptors
+ Specialized Iterator Adaptors
- Indirect Iterator Adaptor
@@ -261,18 +261,21 @@ iterator_traits_generator::reference<foo>::category<std::input_iterator
- This generated type can then be passed into the
- iterator_adaptor class to replace any of the last five
- parameters. If you use the traits generator in the ith
- parameter position, then the parameters i through 7 will
- use the types specified in the generator.
+ This generated type can then be passed into the iterator_adaptor
+ class to replace any of the last five parameters. If you use the traits
+ generator in the ith parameter position, then the parameters i
+ through 7 will use the types specified in the generator. For example, the
+ following adapts foo_iterator to create an InputIterator with
+ reference type foo, and whose other traits are determined
+ according to the defaults described above.
iterator_adaptor<foo_iterator, foo_policies,
iterator_traits_generator
::reference<foo>
- ::category<std::input_iterator_tag>
+ ::iterator_category<std::input_iterator_tag>
>
@@ -281,22 +284,22 @@ iterator_adaptor<foo_iterator, foo_policies,
The main task in using iterator_adaptor is creating an
- appropriate Policies class. The Policies class will
- become the functional heart of the iterator adaptor, supplying the core
- iterator operations that will determine how your new adaptor class will
- behave. The iterator_adaptor template defines all of the operators
- required of a Policies class. The Policies class will become
+ the functional heart of the resulting iterator, supplying the core
+ operations that determine its behavior. The iterator_adaptor
+ template defines all of the operators required of a Random Access
- Iterator. Your Policies class must implement three, four, or
- seven of the core iterator operations below depending on the iterator
- categories you want it to support.
+ Iterator by dispatching to a Policies object. Your
+ Policies class must implement a subset of the core iterator
+ operations below corresponding to the iterator categories you want it to
+ support.
Core Iterator Operations
- T: iterator type; p: object of type T; n: T::size_type; x: T::difference_type; p1, p2: iterators
+ T: adapted iterator type; p: object of type T; n: T::size_type; x: T::difference_type; p1, p2: iterators
@@ -439,7 +442,8 @@ struct default_iterator_policies
range of iterators. If we had used concrete types above, we'd have tied the
usefulness of default_iterator_policies to a particular range of
adapted iterators. If you follow the same pattern with your
- Policies classes, you may achieve the same sort of reusability.
+ Policies classes, you can use them to generate more specialized
+ adaptors along the lines of those supplied by this library.
In addition to all of the member functions required of a