mirror of
https://github.com/boostorg/utility.git
synced 2025-05-09 15:04:00 +00:00
Remove generator_iterator.hpp, as it has been moved to iterator.
This commit is contained in:
parent
beab2e74ca
commit
34c11cb995
@ -1,80 +0,0 @@
|
|||||||
// (C) Copyright Jens Maurer 2001.
|
|
||||||
// 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)
|
|
||||||
//
|
|
||||||
// Revision History:
|
|
||||||
|
|
||||||
// 15 Nov 2001 Jens Maurer
|
|
||||||
// created.
|
|
||||||
|
|
||||||
// See http://www.boost.org/libs/utility/iterator_adaptors.htm for documentation.
|
|
||||||
|
|
||||||
#ifndef BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
|
|
||||||
#define BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
|
|
||||||
|
|
||||||
#include <boost/iterator/iterator_facade.hpp>
|
|
||||||
#include <boost/ref.hpp>
|
|
||||||
|
|
||||||
namespace boost {
|
|
||||||
|
|
||||||
template<class Generator>
|
|
||||||
class generator_iterator
|
|
||||||
: public iterator_facade<
|
|
||||||
generator_iterator<Generator>
|
|
||||||
, typename Generator::result_type
|
|
||||||
, single_pass_traversal_tag
|
|
||||||
, typename Generator::result_type const&
|
|
||||||
>
|
|
||||||
{
|
|
||||||
typedef iterator_facade<
|
|
||||||
generator_iterator<Generator>
|
|
||||||
, typename Generator::result_type
|
|
||||||
, single_pass_traversal_tag
|
|
||||||
, typename Generator::result_type const&
|
|
||||||
> super_t;
|
|
||||||
|
|
||||||
public:
|
|
||||||
generator_iterator() {}
|
|
||||||
generator_iterator(Generator* g) : m_g(g), m_value((*m_g)()) {}
|
|
||||||
|
|
||||||
void increment()
|
|
||||||
{
|
|
||||||
m_value = (*m_g)();
|
|
||||||
}
|
|
||||||
|
|
||||||
const typename Generator::result_type&
|
|
||||||
dereference() const
|
|
||||||
{
|
|
||||||
return m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
bool equal(generator_iterator const& y) const
|
|
||||||
{
|
|
||||||
return this->m_g == y.m_g && this->m_value == y.m_value;
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
Generator* m_g;
|
|
||||||
typename Generator::result_type m_value;
|
|
||||||
};
|
|
||||||
|
|
||||||
template<class Generator>
|
|
||||||
struct generator_iterator_generator
|
|
||||||
{
|
|
||||||
typedef generator_iterator<Generator> type;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <class Generator>
|
|
||||||
inline generator_iterator<Generator>
|
|
||||||
make_generator_iterator(Generator & gen)
|
|
||||||
{
|
|
||||||
typedef generator_iterator<Generator> result_t;
|
|
||||||
return result_t(&gen);
|
|
||||||
}
|
|
||||||
|
|
||||||
} // namespace boost
|
|
||||||
|
|
||||||
|
|
||||||
#endif // BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
|
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user