VTK  9.3.0
vtkArrayDispatch.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
2 // SPDX-License-Identifier: BSD-3-Clause
186 #ifndef vtkArrayDispatch_h
187 #define vtkArrayDispatch_h
188 
189 #include "vtkArrayDispatchArrayList.h"
190 #include "vtkType.h"
191 #include "vtkTypeList.h"
192 
194 {
195 VTK_ABI_NAMESPACE_BEGIN
196 
200 typedef vtkTypeList::Create<double, float> Reals;
201 
205 typedef vtkTypeList::Unique<
206  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
207  unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
208 
213 
214 //------------------------------------------------------------------------------
221 struct Dispatch;
222 
223 //------------------------------------------------------------------------------
230 template <typename ArrayList>
232 
233 //------------------------------------------------------------------------------
241 template <typename ArrayList, typename ValueTypeList>
243 template <typename ValueTypeList>
245 
246 //------------------------------------------------------------------------------
254 struct Dispatch2;
255 
256 //------------------------------------------------------------------------------
265 template <typename ArrayList>
267 struct Dispatch2SameValueType;
268 
269 //------------------------------------------------------------------------------
279 template <typename ArrayList1, typename ArrayList2>
281 
282 //------------------------------------------------------------------------------
294 template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2>
296 template <typename ValueTypeList1, typename ValueTypeList2>
298 
299 //------------------------------------------------------------------------------
310 template <typename ArrayList1, typename ArrayList2>
312 
313 //------------------------------------------------------------------------------
325 template <typename ArrayList, typename ValueTypeList>
327 template <typename ValueTypeList>
329 
330 //------------------------------------------------------------------------------
338 struct Dispatch3;
339 
340 //------------------------------------------------------------------------------
349 template <typename ArrayList>
351 struct Dispatch3SameValueType;
352 
353 //------------------------------------------------------------------------------
364 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
366 
367 //------------------------------------------------------------------------------
381 template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2,
382  typename ValueTypeList3>
384 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
386 
387 //------------------------------------------------------------------------------
398 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
400 
401 //------------------------------------------------------------------------------
413 template <typename ArrayList, typename ValueTypeList>
415 template <typename ValueTypeList>
417 
418 //------------------------------------------------------------------------------
423 template <typename ArrayList, typename ValueList>
425 
426 VTK_ABI_NAMESPACE_END
427 } // end namespace vtkArrayDispatch
428 
429 #include "vtkArrayDispatch.txx"
430 
431 #endif // vtkArrayDispatch_h
432 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
vtkTypeList::Unique< vtkTypeList::Create< char, int, long, long long, short, signed char, unsigned char, unsigned int, unsigned long, unsigned long long, unsigned short, vtkIdType > >::Result Integrals
A Typelist containing all integral ValueTypes.
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:163
typename vtkTypeList::Unique< vtkTypeList::Create< vtkDoubleArray, vtkTypeInt32Array, vtkTypeInt64Array > >::Result ArrayList
List of possible ArrayTypes that are produced by vtkIOSSUtilities.
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Dispatch two arrays, restricting the valid code paths to use only arrays that have the same ValueType...
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Dispatch three arrays, restricting the valid code paths to use only arrays that have the same ValueTy...
Dispatch a single array against all array types mentioned in the ArrayList template parameter.
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Appends type T to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:151
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:110
int vtkIdType
Definition: vtkType.h:315