DGtal  0.9.2
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)
33 
34 #define CBidirectionalRangeWithWritableIterator_RECURSES
35 
36 #if !defined CBidirectionalRangeWithWritableIterator_h
37 
38 #define CBidirectionalRangeWithWritableIterator_h
39 
41 // Inclusions
42 #include <iostream>
43 #include "DGtal/base/Common.h"
44 #include "DGtal/base/CSinglePassRangeWithWritableIterator.h"
46 
47 namespace 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.
109  ReverseOutputIterator myOutput;
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)
Aim: refined concept of bidirectional range which require that a reverse output iterator exists...
void sameType(const T &t1, const T &t2)
DGtal is the top-level namespace which contains all DGtal functions and types.
Aim: refined concept of const single pass range which require that an output iterator exists...