DGtal
2.2.0
Toggle main menu visibility
Loading...
Searching...
No Matches
OutputIteratorAdapter.h
1
16
17
#pragma once
18
30
31
#if defined(OutputIteratorAdapter_RECURSES)
32
#error Recursive header files inclusion detected in OutputIteratorAdapter.h
33
#else
// defined(OutputIteratorAdapter_RECURSES)
35
#define OutputIteratorAdapter_RECURSES
36
37
#if !defined OutputIteratorAdapter_h
39
#define OutputIteratorAdapter_h
40
42
// Inclusions
43
#include "DGtal/base/Common.h"
44
#include "DGtal/base/ConstAlias.h"
45
#include "DGtal/base/BasicFunctors.h"
46
#include "DGtal/base/CUnaryFunctor.h"
47
#include "DGtal/base/Circulator.h"
48
49
#include <iostream>
50
52
53
namespace
DGtal
54
{
55
57
// template class OutputIteratorAdapter
74
template
<
typename
TIterator,
typename
TFunctor,
typename
TInputValue>
75
class
OutputIteratorAdapter
76
{
77
// ----------------------- Types definitions ------------------------------
78
79
public
:
80
81
using
iterator_category
= std::output_iterator_tag;
82
using
value_type
= void;
83
using
difference_type
= void;
84
using
pointer
= void;
85
using
reference
= void;
86
87
88
89
typedef
TIterator
Iterator
;
90
BOOST_CONCEPT_ASSERT
((
boost::ForwardIterator<Iterator>
));
91
BOOST_CONCEPT_ASSERT
((
concepts::CUnaryFunctor
<TFunctor,
92
typename
std::iterator_traits<Iterator>::value_type&, TInputValue& > ));
93
94
// ----------------------- Standard services ------------------------------
95
public
:
101
OutputIteratorAdapter
(
const
Iterator
&it,
ConstAlias<TFunctor>
f)
102
:
myIt
(it),
myF
(&f) {}
103
108
OutputIteratorAdapter
(
const
OutputIteratorAdapter
& other )
109
:
myIt
(other.
myIt
),
myF
(other.
myF
) {}
110
114
~OutputIteratorAdapter
() {}
115
116
// ----------------------- Interface --------------------------------------
117
public
:
118
124
OutputIteratorAdapter
&
operator=
(
const
TInputValue& aValue)
125
{
126
myF
->operator()( *myIt ) = aValue;
127
return
*
this
;
128
}
129
134
OutputIteratorAdapter
&
operator*
() {
return
*
this
; }
135
140
OutputIteratorAdapter
&
operator++
() { ++
myIt
;
return
*
this
; }
141
146
OutputIteratorAdapter
operator++
(
int
)
147
{
148
OutputIteratorAdapter
tmp = *
this
;
149
++
myIt
;
150
return
tmp;
151
}
152
153
154
// ------------------------- Hidden services ------------------------------
155
protected
:
156
157
158
private
:
159
160
// ------------------------- Private Data --------------------------------
161
private
:
165
Iterator
myIt
;
166
170
const
TFunctor*
myF
;
171
172
};
// end of class OutputIteratorAdapter
173
174
}
176
// Includes inline functions.
177
//#include "DGtal/images/OutputIteratorAdapter.ih"
178
179
//
181
182
#endif
// !defined OutputIteratorAdapter_h
183
184
#undef OutputIteratorAdapter_RECURSES
185
#endif
// else defined(OutputIteratorAdapter_RECURSES)
DGtal::ConstAlias
Aim: This class encapsulates its parameter class so that to indicate to the user that the object/poin...
Definition
ConstAlias.h:187
DGtal::OutputIteratorAdapter::iterator_category
std::output_iterator_tag iterator_category
Definition
OutputIteratorAdapter.h:81
DGtal::OutputIteratorAdapter::operator*
OutputIteratorAdapter & operator*()
Definition
OutputIteratorAdapter.h:134
DGtal::OutputIteratorAdapter::operator=
OutputIteratorAdapter & operator=(const TInputValue &aValue)
Definition
OutputIteratorAdapter.h:124
DGtal::OutputIteratorAdapter::myF
const TFunctor * myF
Definition
OutputIteratorAdapter.h:170
DGtal::OutputIteratorAdapter::OutputIteratorAdapter
OutputIteratorAdapter(const OutputIteratorAdapter &other)
Definition
OutputIteratorAdapter.h:108
DGtal::OutputIteratorAdapter::OutputIteratorAdapter
OutputIteratorAdapter(const Iterator &it, ConstAlias< TFunctor > f)
Definition
OutputIteratorAdapter.h:101
DGtal::OutputIteratorAdapter::reference
void reference
Definition
OutputIteratorAdapter.h:85
DGtal::OutputIteratorAdapter::pointer
void pointer
Definition
OutputIteratorAdapter.h:84
DGtal::OutputIteratorAdapter::myIt
Iterator myIt
Definition
OutputIteratorAdapter.h:165
DGtal::OutputIteratorAdapter::operator++
OutputIteratorAdapter operator++(int)
Definition
OutputIteratorAdapter.h:146
DGtal::OutputIteratorAdapter::value_type
void value_type
Definition
OutputIteratorAdapter.h:82
DGtal::OutputIteratorAdapter::difference_type
void difference_type
Definition
OutputIteratorAdapter.h:83
DGtal::OutputIteratorAdapter::Iterator
TIterator Iterator
Definition
OutputIteratorAdapter.h:89
DGtal::OutputIteratorAdapter::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((boost::ForwardIterator< Iterator >))
DGtal::OutputIteratorAdapter::~OutputIteratorAdapter
~OutputIteratorAdapter()
Definition
OutputIteratorAdapter.h:114
DGtal::OutputIteratorAdapter::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((concepts::CUnaryFunctor< TFunctor, typename std::iterator_traits< Iterator >::value_type &, TInputValue & >))
DGtal::OutputIteratorAdapter::operator++
OutputIteratorAdapter & operator++()
Definition
OutputIteratorAdapter.h:140
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
Definition
ClosedIntegerHalfPlane.h:49
DGtal::concepts::CUnaryFunctor
Aim: Defines a unary functor, which associates arguments to results.
Definition
CUnaryFunctor.h:90
boost::ForwardIterator
Go to http://www.sgi.com/tech/stl/ForwardIterator.html.
Definition
Boost.dox:40
src
DGtal
base
OutputIteratorAdapter.h
Generated on
for DGtal by
1.18.0