diff --git a/generator_iterator.htm b/generator_iterator.htm deleted file mode 100644 index b0e376e..0000000 --- a/generator_iterator.htm +++ /dev/null @@ -1,163 +0,0 @@ - - - -
- - - -Defined in header boost/generator_iterator.hpp
- -The generator iterator adaptor makes it easier to create custom input - iterators from 0-ary functions and function objects. The adaptor takes a - Generator and - creates a model of Input Iterator. Each - increment retrieves an item from the generator and makes it available to be - retrieved by dereferencing. The motivation for this iterator is that some - concepts can be more naturally expressed as a generator, while most STL - algorithms expect an iterator. An example is the Random Number library.
- ----namespace boost { - template <class Generator> - class generator_iterator_policies; - - template <class Generator> - class generator_iterator_generator; - - template <class Generator> - typename generator_iterator_generator<Generator>::type - make_generator_iterator(Generator & gen); -} --
The class generator_iterator_generator is a helper class whose purpose - is to construct a generator iterator type. The template parameter for this - class is the Generator function object type that is being wrapped. The - generator iterator adaptor only holds a reference (or pointer) to the - function object, therefore the function object must outlive the generator - iterator adaptor constructed from it.
--template <class Generator> -class generator_iterator_generator -{ -public: - typedef unspecified type; // the resulting generator iterator type -} -- -
Parameter | - -Description | -
---|---|
Generator | - -The generator (0-ary function object) type being wrapped. The - return type of the function must be defined as - Generator::result_type. The function object must be a model of - Generator. | -
The generator iterator class is a model of Input Iterator.
- -The generator iterator implements the member functions and operators
- required of the Input Iterator
- concept.
The make_generator_iterator() function provides a convenient - way to create generator iterator objects. The function saves the user the - trouble of explicitly writing out the iterator types.
- ----template <class Generator> -typename generator_iterator_generator<Generator>::type -make_generator_iterator(Generator & gen); --
The following program shows how generator_iterator
- transforms a generator into an input iterator.
---#include <iostream> -#include <boost/generator_iterator.hpp> - -class my_generator -{ -public: - typedef int result_type; - my_generator() : state(0) { } - int operator()() { return ++state; } -private: - int state; -}; - -int main() -{ - my_generator gen; - boost::generator_iterator_generator<my_generator>::type it = boost::make_generator_iterator(gen); - for(int i = 0; i < 10; ++i, ++it) - std::cout << *it << std::endl; -} --
Revised - 05 December, 2006
- -Copyright © 2001 Jens Maurer
- -Distributed under the Boost Software License, Version 1.0. (See - accompanying file LICENSE_1_0.txt or - copy at http://www.boost.org/LICENSE_1_0.txt)
- - diff --git a/index.html b/index.html index be15d40..7ab91c2 100644 --- a/index.html +++ b/index.html @@ -24,7 +24,7 @@ enable_if (moved to the Boost.Core library)