diff --git a/doc/index.html b/doc/index.html index 9589c14..58d3e53 100755 --- a/doc/index.html +++ b/doc/index.html @@ -53,21 +53,21 @@ older Boost Iterator Adaptor Library.

Table of Contents


-

New-Style Iterators

+

New-Style Iterators

The iterator categories defined in C++98 are extremely limiting because they bind together two orthogonal concepts: traversal and element access. For example, because a random access iterator is @@ -86,7 +86,7 @@ concepts, see our

Standard Proposal For New-Style Iterators (PDF)
-

Iterator Facade and Adaptor

+

Iterator Facade and Adaptor

Writing standard-conforming iterators is tricky, but the need comes up often. In order to ease the implementation of new iterators, the Boost.Iterator library provides the iterator_facade class template, @@ -113,7 +113,7 @@ and accepted into the first C++ technical report; see our

for more details.

-

Specialized Adaptors

+

Specialized Adaptors

The iterator library supplies a useful suite of standard-conforming iterator templates based on the Boost iterator facade and adaptor.

-

Iterator Utilities

+

Iterator Utilities

-

Traits

+

Traits

-

Testing and Concept Checking

+

Testing and Concept Checking

-

Upgrading from the old Boost Iterator Adaptor Library

+

Upgrading from the old Boost Iterator Adaptor Library

If you have been using the old Boost Iterator Adaptor library to implement iterators, you probably wrote a Policies class which captures the core operations of your iterator. In the new library @@ -171,7 +176,7 @@ you probably wrote a iterator_adaptor specialization you needed; in the new library design you don't need a type generator (though may want to keep it around as a compatibility aid for older code) because, due to the -use of the Curiously Recurring Template Pattern (CRTP) [Cop95], +use of the Curiously Recurring Template Pattern (CRTP) [Cop95], you can now define the iterator class yourself and acquire functionality through inheritance from iterator_facade or iterator_adaptor. As a result, you also get much finer control @@ -186,7 +191,7 @@ type, transform_iterator will projection_iterator used to.

-

History

+

History

In 2000 Dave Abrahams was writing an iterator for a container of pointers, which would access the pointed-to elements when dereferenced. Naturally, being a library writer, he decided to @@ -215,7 +220,7 @@ library you see today.

-[Cop95][Coplien, 1995] Coplien, J., Curiously Recurring Template +[Cop95][Coplien, 1995] Coplien, J., Curiously Recurring Template Patterns, C++ Report, February 1995, pp. 24-27. diff --git a/doc/index.rst b/doc/index.rst index 2b1cdf5..0d688c2 100755 --- a/doc/index.rst +++ b/doc/index.rst @@ -134,6 +134,10 @@ iterator templates based on the Boost `iterator facade and adaptor`_. * |filter|_ (PDF__): an iterator over the subset of elements of some sequence which satisfy a given predicate +* |function|_ (PDF__): an output iterator wrapping a unary function + object; each time an element is written into the dereferenced + iterator, it is passed as a parameter to the function object. + * |indirect|_ (PDF__): an iterator over the objects *pointed-to* by the elements of some sequence. @@ -144,6 +148,9 @@ iterator templates based on the Boost `iterator facade and adaptor`_. bidirectional sequence in reverse. Corrects many of the shortcomings of C++98's ``std::reverse_iterator``. +* |shared|_: an iterator over elements of a container whose + lifetime is maintained by a |shared_ptr|_ stored in the iterator. + * |transform|_ (PDF__): an iterator over elements which are the result of applying some functional transformation to the elements of an underlying sequence. This component also replaces the old @@ -160,6 +167,10 @@ __ counting_iterator.pdf .. _filter: filter_iterator.html __ filter_iterator.pdf +.. |function| replace:: ``function_output_iterator`` +.. _function: function_output_iterator.html +__ function_output_iterator.pdf + .. |indirect| replace:: ``indirect_iterator`` .. _indirect: indirect_iterator.html __ indirect_iterator.pdf @@ -172,6 +183,9 @@ __ permutation_iterator.pdf .. _reverse: reverse_iterator.html __ reverse_iterator.pdf +.. |shared| replace:: ``shared_container_iterator`` +.. _shared: ../../utility/shared_container_iterator.html + .. |transform| replace:: ``transform_iterator`` .. _transform: transform_iterator.html __ transform_iterator.pdf @@ -180,6 +194,9 @@ __ transform_iterator.pdf .. _zip: zip_iterator.html __ zip_iterator.pdf +.. |shared_ptr| replace:: ``shared_ptr`` +.. _shared_ptr: ../../smart_ptr/shared_ptr.htm + ==================== Iterator Utilities ==================== diff --git a/doc/iterator_traits.pdf b/doc/iterator_traits.pdf index d2ce590..dd21246 100755 Binary files a/doc/iterator_traits.pdf and b/doc/iterator_traits.pdf differ diff --git a/doc/pointee.html b/doc/pointee.html index 0678b9f..63d2261 100755 --- a/doc/pointee.html +++ b/doc/pointee.html @@ -7,7 +7,7 @@ pointee and indirect_reference - + @@ -25,7 +25,7 @@ Organization: Boost Consulting Date: -2004-01-13 +2004-01-29 Copyright: Copyright David Abrahams 2004. All rights reserved diff --git a/doc/pointee.pdf b/doc/pointee.pdf index 83e5f84..ad59911 100755 Binary files a/doc/pointee.pdf and b/doc/pointee.pdf differ diff --git a/doc/zip_iterator.pdf b/doc/zip_iterator.pdf index 8cbd22d..6b4c0f1 100755 Binary files a/doc/zip_iterator.pdf and b/doc/zip_iterator.pdf differ