imgtools/imglib/boostlibrary/boost/tr1/detail/functor2iterator.hpp
author jjkang
Fri, 25 Jun 2010 18:11:34 +0800
changeset 600 6d08f4a05d93
permissions -rw-r--r--
add deprecated files
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
600
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     1
//  (C) Copyright John Maddock 2005.
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     2
//  Use, modification and distribution are subject to the
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     3
//  Boost Software License, Version 1.0. (See accompanying file
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     4
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     5
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     6
#ifndef BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     7
#  define BOOST_TR1_FUNCTOR_IT_HPP_INCLUDED
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     8
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
     9
# include <boost/iterator/iterator_facade.hpp>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    10
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    11
namespace boost{ namespace tr1_details{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    12
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    13
template <class Func, class R>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    14
struct functor2iterator : boost::iterator_facade<functor2iterator<Func,R>, const R, std::input_iterator_tag>
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    15
{
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    16
   functor2iterator() : m_func(0){}
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    17
   functor2iterator(Func& f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    18
      : m_func(&f)
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    19
   {
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    20
      m_val = (*m_func)();
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    21
   }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    22
   const R& dereference()const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    23
   { return m_val; }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    24
   void increment(){ m_val = (*m_func)(); }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    25
   bool equal(const functor2iterator&)const
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    26
   { return false; }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    27
private:
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    28
   Func* m_func;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    29
   R m_val;
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    30
};
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    31
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    32
} }
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    33
6d08f4a05d93 add deprecated files
jjkang
parents:
diff changeset
    34
#endif