DGtal  0.6.devel
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
CConvolutionWeights.h
1 
17 #pragma once
18 
31 #if defined(CConvolutionWeights_RECURSES)
32 #error Recursive header files inclusion detected in CConvolutionWeights.h
33 #else // defined(CConvolutionWeights_RECURSES)
34 
35 #define CConvolutionWeights_RECURSES
36 
37 #if !defined CConvolutionWeights_h
38 
39 #define CConvolutionWeights_h
40 
42 // Inclusions
43 #include <iostream>
44 #include "DGtal/base/Common.h"
46 
47 namespace DGtal
48 {
49 
51  // class CConvolutionWeights
107  template <typename T>
108  struct CConvolutionWeights: boost::CopyConstructible<T>, boost::Assignable<T>
109  // Use derivation for coarser concepts, like
110  // : CoarserConcept<T>
111  // Think to boost::CopyConstructible<T>, boost::DefaultConstructible<T>, ...
112  // http://www.boost.org/doc/libs/1_49_0/libs/concept_check/reference.htm
113  {
114  // ----------------------- Concept checks ------------------------------
115  public:
116 
117  //inner type
118  typedef typename T::Distance Distance;
119 
120  // 2. then check the presence of data members, operators and methods with
122  {
123 
125  }
126 
127  // ------------------------- Private Datas --------------------------------
128  private:
129  T myX; // do not require T to be default constructible.
131  double myB;
132 
133  // ------------------------- Internals ------------------------------------
134  private:
135 
136  }; // end of concept CConvolutionWeights
137 
138 } // namespace DGtal
139 
140 // //
142 
143 #endif // !defined CConvolutionWeights_h
144 
145 #undef CConvolutionWeights_RECURSES
146 #endif // else defined(CConvolutionWeights_RECURSES)