comparison DEPENDENCIES/generic/include/boost/generator_iterator.hpp @ 101:c530137014c0

Update Boost headers (1.58.0)
author Chris Cannam
date Mon, 07 Sep 2015 11:12:49 +0100
parents 2665513ce2d3
children
comparison
equal deleted inserted replaced
100:793467b5e61c 101:c530137014c0
15 15
16 #include <boost/iterator/iterator_facade.hpp> 16 #include <boost/iterator/iterator_facade.hpp>
17 #include <boost/ref.hpp> 17 #include <boost/ref.hpp>
18 18
19 namespace boost { 19 namespace boost {
20 namespace iterators {
20 21
21 template<class Generator> 22 template<class Generator>
22 class generator_iterator 23 class generator_iterator
23 : public iterator_facade< 24 : public iterator_facade<
24 generator_iterator<Generator> 25 generator_iterator<Generator>
31 generator_iterator<Generator> 32 generator_iterator<Generator>
32 , typename Generator::result_type 33 , typename Generator::result_type
33 , single_pass_traversal_tag 34 , single_pass_traversal_tag
34 , typename Generator::result_type const& 35 , typename Generator::result_type const&
35 > super_t; 36 > super_t;
36 37
37 public: 38 public:
38 generator_iterator() {} 39 generator_iterator() {}
39 generator_iterator(Generator* g) : m_g(g), m_value((*m_g)()) {} 40 generator_iterator(Generator* g) : m_g(g), m_value((*m_g)()) {}
40 41
41 void increment() 42 void increment()
71 { 72 {
72 typedef generator_iterator<Generator> result_t; 73 typedef generator_iterator<Generator> result_t;
73 return result_t(&gen); 74 return result_t(&gen);
74 } 75 }
75 76
77 } // namespace iterators
78
79 using iterators::generator_iterator;
80 using iterators::generator_iterator_generator;
81 using iterators::make_generator_iterator;
82
76 } // namespace boost 83 } // namespace boost
77 84
78
79 #endif // BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP 85 #endif // BOOST_ITERATOR_ADAPTOR_GENERATOR_ITERATOR_HPP
80