DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CConstBidirectionalRangeFromPoint.h
1 
17 #pragma once
18 
31 #if defined(CConstBidirectionalRangeFromPoint_RECURSES)
32 #error Recursive header files inclusion detected in CConstBidirectionalRangeFromPoint.h
33 #else // defined(CConstBidirectionalRangeFromPoint_RECURSES)
34 
35 #define CConstBidirectionalRangeFromPoint_RECURSES
36 
37 #if !defined CConstBidirectionalRangeFromPoint_h
38 
39 #define CConstBidirectionalRangeFromPoint_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
45 #include "DGtal/base/CConstBidirectionalRange.h"
47 
48 namespace DGtal
49 {
50 
52  // class CConstBidirectionalRangeFromPoint
89  template <typename T>
91  {
92  // ----------------------- Concept checks ------------------------------
93  public:
94  // 1. define first provided types (i.e. inner types), like
95  typedef typename T::Point Point;
96 
97  // 2. then check the presence of data members, operators and methods with
99  {
101  }
103  {
104  // const method dummyConst should take parameter myA of type A and return
105  // something of type B
106  ConceptUtils::sameType( myB, myX.rbegin( myPoint ) );
107  }
108  // ------------------------- Private Datas --------------------------------
109  private:
110  T myX; // do not require T to be default constructible.
112  typename T::ConstReverseIterator myB;
113 
114  // ------------------------- Internals ------------------------------------
115  private:
116 
117  }; // end of concept CConstBidirectionalRangeFromPoint
118 
119 } // namespace DGtal
120 
123 
124 #endif // !defined CConstBidirectionalRangeFromPoint_h
125 
126 #undef CConstBidirectionalRangeFromPoint_RECURSES
127 #endif // else defined(CConstBidirectionalRangeFromPoint_RECURSES)