DGtal  1.4.beta
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 "DGtal/base/Common.h"
43 #include "DGtal/base/CSinglePassRangeWithWritableIterator.h"
45 
46 namespace DGtal
47 {
48 
49  namespace concepts
50  {
51 
53  // class CBidirectionalRangeWithWritableIterator
91  template <typename T, typename Value>
93  {
94  // ----------------------- Concept checks ------------------------------
95  public:
96  // 1. define first provided types (i.e. inner types), like
97  typedef typename T::ReverseOutputIterator ReverseOutputIterator;
98  // possibly check these types so as to satisfy a concept with
99  //BOOST_CONCEPT_ASSERT(( CConcept< InnerType > ));
100 
102  {
103  concepts::ConceptUtils::sameType( myOutput, myX.routputIterator( ) );
104  }
105  // ------------------------- Private Datas --------------------------------
106  private:
107  T myX; // do not require T to be default constructible.
109 
110  // ------------------------- Internals ------------------------------------
111  private:
112 
113  }; // end of concept CBidirectionalRangeWithWritableIterator
114 
115  } // namespace concepts
116 
117 } // namespace DGtal
118 
119 // //
121 
122 #endif // !defined CBidirectionalRangeWithWritableIterator_h
123 
124 #undef CBidirectionalRangeWithWritableIterator_RECURSES
125 #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.