DGtal
1.3.beta
src
DGtal
base
CBidirectionalRange.h
1
17
#pragma once
18
31
#if defined(CBidirectionalRange_RECURSES)
32
#error Recursive header files inclusion detected in CBidirectionalRange.h
33
#else // defined(CBidirectionalRange_RECURSES)
34
35
#define CBidirectionalRange_RECURSES
36
37
#if !defined CBidirectionalRange_h
38
39
#define CBidirectionalRange_h
40
42
// Inclusions
43
#include "DGtal/base/Common.h"
44
#include "boost/concept_check.hpp"
45
#include "DGtal/base/ConceptUtils.h"
46
#include "DGtal/base/CConstBidirectionalRange.h"
48
49
namespace
DGtal
50
{
51
52
namespace
concepts
53
{
54
56
// class CBidirectionalRange
89
template
<
typename
T>
90
struct
CBidirectionalRange
:
public
CConstBidirectionalRange
<T>
91
{
92
// ----------------------- Concept checks ------------------------------
93
public
:
94
typedef
typename
T::ReverseIterator
ReverseIterator
;
95
96
BOOST_CONCEPT_ASSERT
((
boost_concepts::SinglePassIteratorConcept<ReverseIterator>
));
97
98
BOOST_CONCEPT_USAGE
(
CBidirectionalRange
)
99
{
100
concepts::ConceptUtils::sameType
(
it
,
i
.rbegin() );
101
concepts::ConceptUtils::sameType
(
it
,
i
.rend() );
102
};
103
104
private
:
105
T
i
;
106
ReverseIterator
it
;
107
};
// end of concept CBidirectionalRange
108
109
}
// namespace concepts
110
111
}
// namespace DGtal
112
113
114
115
// //
117
118
#endif // !defined CBidirectionalRange_h
119
120
#undef CBidirectionalRange_RECURSES
121
#endif // else defined(CBidirectionalRange_RECURSES)
DGtal::concepts::CBidirectionalRange::ReverseIterator
T::ReverseIterator ReverseIterator
Definition:
CBidirectionalRange.h:94
DGtal::concepts::CBidirectionalRange
Aim: Defines the concept describing a bidirectional range.
Definition:
CBidirectionalRange.h:90
boost_concepts::SinglePassIteratorConcept
Go to http://www.boost.org/doc/libs/1_52_0/libs/iterator/doc/SinglePassIterator.html.
Definition:
BoostConcepts.dox:44
DGtal::concepts::CBidirectionalRange::it
ReverseIterator it
Definition:
CBidirectionalRange.h:106
DGtal::concepts::CBidirectionalRange::BOOST_CONCEPT_ASSERT
BOOST_CONCEPT_ASSERT((boost_concepts::SinglePassIteratorConcept< ReverseIterator >))
DGtal
DGtal is the top-level namespace which contains all DGtal functions and types.
DGtal::concepts::CBidirectionalRange::i
T i
Definition:
CBidirectionalRange.h:102
DGtal::concepts::CConstBidirectionalRange
Aim: Defines the concept describing a bidirectional const range.
Definition:
CConstBidirectionalRange.h:89
DGtal::concepts::ConceptUtils::sameType
void sameType(const T &, const T &)
Definition:
ConceptUtils.h:117
DGtal::concepts::CBidirectionalRange::BOOST_CONCEPT_USAGE
BOOST_CONCEPT_USAGE(CBidirectionalRange)
Definition:
CBidirectionalRange.h:98
Generated on Sun Jul 31 2022 06:46:34 for DGtal by
1.8.17