DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CBidirectionalRangeFromPoint.h
1 
17 #pragma once
18 
31 #if defined(CBidirectionalRangeFromPoint_RECURSES)
32 #error Recursive header files inclusion detected in CBidirectionalRangeFromPoint.h
33 #else // defined(CBidirectionalRangeFromPoint_RECURSES)
34 
35 #define CBidirectionalRangeFromPoint_RECURSES
36 
37 #if !defined CBidirectionalRangeFromPoint_h
38 
39 #define CBidirectionalRangeFromPoint_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/CBidirectionalRange.h"
46 #include "DGtal/base/CConstBidirectionalRangeFromPoint.h"
48 
49 namespace DGtal
50 {
51 
53 // class CBidirectionalRangeFromPoint
91 template <typename T>
92 
96 {
97  // ----------------------- Concept checks ------------------------------
98 
99 public:
100  // 1. define first provided types (i.e. inner types), like
101  typedef typename T::Point Point;
102  typedef typename T::ReverseIterator ReverseIterator;
103 
104 
105  // 2. then check the presence of data members, operators and methods with
107  {
108  ConceptUtils::sameType ( myIt, myX.rbegin ( myPoint ) );
109  }
110 
111  // ------------------------- Private Datas --------------------------------
112 
113 private:
114  T myX; // do not require T to be default constructible.
117 
118  // ------------------------- Internals ------------------------------------
119 
120 private:
121 
122 }; // end of concept CBidirectionalRangeFromPoint
123 
124 } // namespace DGtal
125 
126 // //
128 
129 #endif // !defined CBidirectionalRangeFromPoint_h
130 
131 #undef CBidirectionalRangeFromPoint_RECURSES
132 #endif // else defined(CBidirectionalRangeFromPoint_RECURSES)