equal
deleted
inserted
replaced
|
1 // (C) Copyright John Maddock 2005. |
|
2 // Use, modification and distribution are subject to the |
|
3 // Boost Software License, Version 1.0. (See accompanying file |
|
4 // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) |
|
5 |
|
6 #ifndef BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED |
|
7 # define BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED |
|
8 |
|
9 # include <boost/iterator/iterator_facade.hpp> |
|
10 |
|
11 namespace boost{ namespace tr1_details{ |
|
12 |
|
13 template <class Func, class R> |
|
14 struct functor2iterator : boost::iterator_facade<functor2iterator<Func,R>, const R, std::input_iterator_tag> |
|
15 { |
|
16 functor2iterator() : m_func(0){} |
|
17 functor2iterator(Func& f) |
|
18 : m_func(&f) |
|
19 { |
|
20 m_val = (*m_func)(); |
|
21 } |
|
22 const R& dereference()const |
|
23 { return m_val; } |
|
24 void increment(){ m_val = (*m_func)(); } |
|
25 bool equal(const functor2iterator&)const |
|
26 { return false; } |
|
27 private: |
|
28 Func* m_func; |
|
29 R m_val; |
|
30 }; |
|
31 |
|
32 } } |
|
33 |
|
34 #endif |