Chris@16: // (C) Copyright John Maddock 2005. Chris@16: // Use, modification and distribution are subject to the Chris@16: // Boost Software License, Version 1.0. (See accompanying file Chris@16: // LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) Chris@16: Chris@16: #ifndef BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED Chris@16: # define BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED Chris@16: Chris@16: # include Chris@16: Chris@16: namespace boost{ namespace tr1_details{ Chris@16: Chris@16: template Chris@16: struct functor2iterator : boost::iterator_facade, const R, std::input_iterator_tag> Chris@16: { Chris@16: functor2iterator() : m_func(0){} Chris@16: functor2iterator(Func& f) Chris@16: : m_func(&f) Chris@16: { Chris@16: m_val = (*m_func)(); Chris@16: } Chris@16: const R& dereference()const Chris@16: { return m_val; } Chris@16: void increment(){ m_val = (*m_func)(); } Chris@16: bool equal(const functor2iterator&)const Chris@16: { return false; } Chris@16: private: Chris@16: Func* m_func; Chris@16: R m_val; Chris@16: }; Chris@16: Chris@16: } } Chris@16: Chris@16: #endif