108 template<
typename T,
typename =
void>
113 struct IsDataModelType<T, Void<
decltype(acceptNodeType(std::decay<T>::type::nodeType))>> : std::true_type
122 || std::decay<C>::type::nodeType
125 static constexpr std::true_type isLeafHelper(
int);
126 template<
typename C,
typename... Args>
127 static constexpr std::false_type isLeafHelper(Args &&...);
130 using Type =
decltype(isLeafHelper<T>(0));
133 template<
typename T,
typename =
void>
134 struct IsOptional : std::false_type
138 struct IsOptional<T, Void<decltype(std::declval<T>().hasValue())>> : std::true_type
141 template<
typename T,
typename =
void>
142 struct HasValidRange : std::false_type
146 struct HasValidRange<T, Void<decltype(std::declval<typename std::decay<T>::type>().
validRange())>>
150 template<
typename T,
typename =
void>
151 struct HasValidValues : std::false_type
155 struct HasValidValues<T, Void<decltype(std::declval<typename std::decay<T>::type>().
validValues())>>
159 template<
typename T,
typename =
void>
160 struct HasValidSize : std::false_type
164 struct HasValidSize<T, Void<decltype(std::declval<typename std::decay<T>::type>().validSize())>>
191 "The template parameter to IsOptional must be a data model leaf type");
204 "The template parameter to HasValidRange must be a data model leaf type");
217 "The template parameter to HasValidValues must be a data model leaf type");
230 "The template parameter to HasValidSize must be a data model leaf type");
NodeType
Definition: NodeType.h:100
typename Detail::IsDataModelLeaf< T >::Type IsDataModelLeaf
Check if T is a data model leaf type
Definition: Traits.h:185
typename Detail::IsDataModelType< T >::type IsDataModelType
Check if T is a data model type
Definition: Traits.h:176
Ret validRange(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:201
std::set< typename T::ValueType > validValues(const CameraInfo &cameraInfo)
Definition: SettingsInfo.h:195
The main Zivid namespace. All Zivid code is found here
Definition: Application.h:99
Check if T has a ValidRange constraint
Definition: Traits.h:202
Check if T has a ValidSize constraint
Definition: Traits.h:228
Check if data model type T has a ValidValues constraint
Definition: Traits.h:215