DGtal
0.6.devel
Main Page
Related Pages
Modules
Namespaces
Data Structures
Examples
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Groups
Pages
src
DGtal
geometry
surfaces
estimation
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
121
BOOST_CONCEPT_USAGE
(
CConvolutionWeights
)
122
{
123
124
ConceptUtils::sameType
(
myB
,
myX
(
myA
) );
125
}
126
127
// ------------------------- Private Datas --------------------------------
128
private
:
129
T
myX
;
// do not require T to be default constructible.
130
Distance
myA
;
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)
Generated on Wed Dec 19 2012 19:10:20 for DGtal by
1.8.1.1