DGtal
1.3.beta
src
DGtal
base
CSinglePassRangeWithWritableIterator.h
1
17
#pragma once
18
30
#if defined(CSinglePassRangeWithWritableIterator_RECURSES)
31
#error Recursive header files inclusion detected in CSinglePassRangeWithWritableIterator.h
32
#else // defined(CSinglePassRangeWithWritableIterator_RECURSES)
33
34
#define CSinglePassRangeWithWritableIterator_RECURSES
35
36
#if !defined CSinglePassRangeWithWritableIterator_h
37
38
#define CSinglePassRangeWithWritableIterator_h
39
41
// Inclusions
42
#include <iostream>
43
#include "DGtal/base/Common.h"
44
#include "DGtal/base/CConstSinglePassRange.h"
46
47
namespace
DGtal
48
{
49
50
namespace
concepts
51
{
52
54
// class CSinglePassRangeWithWritableIterator
86
template
<
typename
T,
typename
Value>
87
struct
CSinglePassRangeWithWritableIterator
:
CConstSinglePassRange
<T>
88
{
89
// ----------------------- Concept checks ------------------------------
90
public
:
91
// 1. define first provided types (i.e. inner types), like
92
typedef
typename
T::OutputIterator
OutputIterator
;
93
94
// possibly check these types so as to satisfy a concept with
95
BOOST_CONCEPT_ASSERT
((
boost::OutputIterator<OutputIterator,Value>
));
96
97
BOOST_CONCEPT_USAGE
(
CSinglePassRangeWithWritableIterator
)
98
{
99
concepts::ConceptUtils::sameType
(
myOutput
,
myX
.outputIterator( ) );
100
}
101
// ------------------------- Private Datas --------------------------------
102
private
:
103
T
myX
;
// do not require T to be default constructible.
104
OutputIterator
myOutput
;
105
106
// ------------------------- Internals ------------------------------------
107
private
:
108
109
};
// end of concept CSinglePassRangeWithWritableIterator
110
111
}
// namespace concepts
112
113
}
// namespace DGtal
114
115
// //
117
118
#endif // !defined CSinglePassRangeWithWritableIterator_h
119
120
#undef CSinglePassRangeWithWritableIterator_RECURSES
121
#endif // else defined(CSinglePassRangeWithWritableIterator_RECURSES)
DGtal::concepts::CSinglePassRangeWithWritableIterator::myOutput
OutputIterator myOutput
Definition:
CSinglePassRangeWithWritableIterator.h:104
DGtal::concepts::CSinglePassRangeWithWritableIterator::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((boost::OutputIterator< OutputIterator, Value >))
DGtal::concepts::CSinglePassRangeWithWritableIterator
Aim: refined concept of const single pass range which require that an output iterator exists.
Definition:
CSinglePassRangeWithWritableIterator.h:87
DGtal::concepts::CConstSinglePassRange
Aim: Defines the concept describing a const single pass range.
Definition:
CConstSinglePassRange.h:92
boost::OutputIterator
Go to http://www.sgi.com/tech/stl/OutputIterator.html.
Definition:
Boost.dox:38
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::concepts::ConceptUtils::sameType
void sameType(const T &, const T &)
Definition:
ConceptUtils.h:117
DGtal::concepts::CSinglePassRangeWithWritableIterator::myX
T myX
Definition:
CSinglePassRangeWithWritableIterator.h:103
DGtal::concepts::CSinglePassRangeWithWritableIterator::OutputIterator
T::OutputIterator OutputIterator
Definition:
CSinglePassRangeWithWritableIterator.h:92
DGtal::concepts::CSinglePassRangeWithWritableIterator::BOOST_CONCEPT_USAGE
BOOST_CONCEPT_USAGE(CSinglePassRangeWithWritableIterator)
Definition:
CSinglePassRangeWithWritableIterator.h:97
Generated on Mon Jun 20 2022 18:23:27 for DGtal by
1.8.17