DGtal 1.3.0
Loading...
Searching...
No Matches
CBidirectionalRangeWithWritableIterator.h
1
17#pragma once
18
30#if defined(CBidirectionalRangeWithWritableIterator_RECURSES)
31#error Recursive header files inclusion detected in CBidirectionalRangeWithWritableIterator.h
32#else // defined(CBidirectionalRangeWithWritableIterator_RECURSES)
34#define CBidirectionalRangeWithWritableIterator_RECURSES
35
36#if !defined CBidirectionalRangeWithWritableIterator_h
38#define CBidirectionalRangeWithWritableIterator_h
39
41// Inclusions
42#include <iostream>
43#include "DGtal/base/Common.h"
44#include "DGtal/base/CSinglePassRangeWithWritableIterator.h"
46
47namespace DGtal
48{
49
50 namespace concepts
51 {
52
54 // class CBidirectionalRangeWithWritableIterator
92 template <typename T, typename Value>
94 {
95 // ----------------------- Concept checks ------------------------------
96 public:
97 // 1. define first provided types (i.e. inner types), like
98 typedef typename T::ReverseOutputIterator ReverseOutputIterator;
99 // possibly check these types so as to satisfy a concept with
100 //BOOST_CONCEPT_ASSERT(( CConcept< InnerType > ));
101
103 {
104 concepts::ConceptUtils::sameType( myOutput, myX.routputIterator( ) );
105 }
106 // ------------------------- Private Datas --------------------------------
107 private:
108 T myX; // do not require T to be default constructible.
110
111 // ------------------------- Internals ------------------------------------
112 private:
113
114 }; // end of concept CBidirectionalRangeWithWritableIterator
115
116 } // namespace concepts
117
118} // namespace DGtal
119
120// //
122
123#endif // !defined CBidirectionalRangeWithWritableIterator_h
124
125#undef CBidirectionalRangeWithWritableIterator_RECURSES
126#endif // else defined(CBidirectionalRangeWithWritableIterator_RECURSES)
void sameType(const T &, const T &)
Definition: ConceptUtils.h:117
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: refined concept of bidirectional range which require that a reverse output iterator exists.
Aim: refined concept of const single pass range which require that an output iterator exists.