DGtal  0.9.2
IteratorAdapter.h
1 
17 #pragma once
18 
31 #if defined(IteratorAdapter_RECURSES)
32 #error Recursive header files inclusion detected in IteratorAdapter.h
33 #else // defined(IteratorAdapter_RECURSES)
34 
35 #define IteratorAdapter_RECURSES
36 
37 #if !defined IteratorAdapter_h
38 
39 #define IteratorAdapter_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include <boost/iterator/transform_iterator.hpp>
47 
48 namespace DGtal
49 {
50 
52  // template class IteratorAdapter
75  template <typename TIterator, typename TFunctor, typename TReturnType = typename TFunctor::Value>
77  public boost::transform_iterator< TFunctor, TIterator, TReturnType&, TReturnType >
78  {
79 
81 
82  public:
83 
87  typedef boost::transform_iterator< TFunctor, TIterator, TReturnType&, TReturnType > Parent;
88 
92  IteratorAdapter(): Parent() {}
99  IteratorAdapter( const TIterator& iter, TFunctor func ): Parent(iter,func) {}
105  IteratorAdapter( const Self& other ): Parent( static_cast<const Parent&>(other) ) {}
111  IteratorAdapter( const Parent& other ): Parent(other) {}
118  Self& operator=( const Self& other )
119  {
120  if (this != &other)
121  Parent::operator=( static_cast<const Parent&>(other) );
122  return *this;
123  }
130  Self& operator=( const Parent& other )
131  {
132  if (this != &other)
133  Parent::operator=(other);
134  return *this;
135  }
141  };
142 
143 } // namespace DGtal
144 
145 
147 // Includes inline functions.
148 //#include "DGtal/base/IteratorAdapter.ih"
149 
150 // //
152 
153 #endif // !defined IteratorAdapter_h
154 
155 #undef IteratorAdapter_RECURSES
156 #endif // else defined(IteratorAdapter_RECURSES)
Self & operator=(const Self &other)
boost::transform_iterator< TFunctor, TIterator, TReturnType &, TReturnType > Parent
Self & operator=(const Parent &other)
IteratorAdapter(const Parent &other)
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/LvalueIteratorConcept.html.
IteratorAdapter(const Self &other)
IteratorAdapter< TIterator, TFunctor, TReturnType > Self
DGtal is the top-level namespace which contains all DGtal functions and types.
IteratorAdapter(const TIterator &iter, TFunctor func)
BOOST_CONCEPT_ASSERT((boost_concepts::LvalueIteratorConcept< TIterator >))
This class adapts any lvalue iterator so that operator* returns a member on the element pointed to by...