VTK  9.7.1
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 
201 
205 using Integrals = vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char,
206  unsigned int, unsigned long, unsigned long long, unsigned short>;
207 
212 
213 //------------------------------------------------------------------------------
220 struct Dispatch;
221 
222 //------------------------------------------------------------------------------
229 template <typename ArrayList>
231 
232 //------------------------------------------------------------------------------
240 template <typename ValueTypeList>
242 
243 //------------------------------------------------------------------------------
250 template <typename ArrayList, typename ValueTypeList>
252 template <typename ArrayList, typename ValueTypeList>
255 
256 //------------------------------------------------------------------------------
264 struct Dispatch2;
265 
266 //------------------------------------------------------------------------------
275 struct Dispatch2SameValueType;
276 
277 //------------------------------------------------------------------------------
289 template <typename ArrayList1, typename ArrayList2, typename ValueTypeList1,
290  typename ValueTypeList2>
292 template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2>
295 
296 //------------------------------------------------------------------------------
306 template <typename ArrayList1, typename ArrayList2>
308 
309 //------------------------------------------------------------------------------
321 template <typename ValueTypeList1, typename ValueTypeList2>
323 
324 //------------------------------------------------------------------------------
335 template <typename ArrayList1, typename ArrayList2>
337 template <typename ArrayList>
340 
341 //------------------------------------------------------------------------------
353 template <typename ValueTypeList>
355 
356 //------------------------------------------------------------------------------
368 template <typename ArrayList, typename ValueTypeList>
370 template <typename ArrayList, typename ValueTypeList>
373 
374 //------------------------------------------------------------------------------
382 struct Dispatch3;
383 
384 //------------------------------------------------------------------------------
393 struct Dispatch3SameValueType;
394 
395 //------------------------------------------------------------------------------
406 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
408 
409 //------------------------------------------------------------------------------
422 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
424 
425 //------------------------------------------------------------------------------
438 template <typename ArrayList1, typename ArrayList2, typename ArrayList3, typename ValueTypeList1,
439  typename ValueTypeList2, typename ValueTypeList3>
441 template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2,
442  typename ValueTypeList3>
445 
446 //------------------------------------------------------------------------------
457 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
459 template <typename ArrayList>
462 
463 //------------------------------------------------------------------------------
475 template <typename ValueTypeList>
477 
478 //------------------------------------------------------------------------------
490 template <typename ArrayList, typename ValueTypeList>
492 template <typename ArrayList, typename ValueTypeList>
495 
496 //----------------------------------------------------------------------------
501 template <typename ArrayList, typename ArrayTypeTagList>
503 
504 //------------------------------------------------------------------------------
509 template <typename ArrayList, typename DataTypeTagList>
511 
512 //------------------------------------------------------------------------------
517 template <typename ArrayList, typename ValueList>
519 
520 VTK_ABI_NAMESPACE_END
521 } // end namespace vtkArrayDispatch
522 
523 #include "vtkArrayDispatch.txx"
524 
525 #endif // vtkArrayDispatch_h
526 // VTK-HeaderTest-Exclude: vtkArrayDispatch.h
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
Dispatch two arrays, restricting the valid code paths to use only array types specified in the ArrayL...
Dispatch three arrays with the restriction that the type of the first array is in the ArrayList1 Type...
Dispatch two arrays, restricting the valid code paths to use only array types found in application-wi...
Dispatch a single array against all array types in the application-wide vtkArrayDispatch::Arrays list...
typename vtkTypeList::Unique< vtkTypeList::Create< vtkDoubleArray, vtkTypeInt32Array, vtkTypeInt64Array >>::Result ArrayList
List of possible ArrayTypes that are produced by vtkIOSSUtilities.
Dispatch a single array against all array types in ArrayList with the added restriction that the arra...
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:171
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the appli...
Dispatch three arrays, restricting the valid code paths to use only array types specified in the Arra...
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the Array...
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
#define VTK_DEPRECATED_IN_9_6_0(reason)
Filter the ArrayList to contain only arrays with ArrayType::DataTypeTag that exist in DataTypeTagList...
vtkTypeList::Create< char, int, long, long long, short, signed char, unsigned char, unsigned int, unsigned long, unsigned long long, unsigned short > Integrals
A Typelist containing all integral ValueTypes.
Filter the ArrayList to contain only arrays with ArrayType::ArrayTypeTag that exist in ArrayTypeTagLi...
Dispatch three arrays, restricting the valid code paths to use only array types found in ArrayList Ty...
Dispatch two arrays, restricting the valid code paths to use only array types found in ArrayList that...
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList...
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of ArrayLi...
Dispatch two arrays with the restriction that the type of the first array is in the ArrayList1 TypeLi...
Dispatch three arrays, restricting the valid code paths to use ValueType-filtered versions of the app...
Appends types/TypeLists to TypeList TList and stores the result in Result.
Definition: vtkTypeList.h:159
Dispatch a single array against all array types mentioned in the ArrayList template parameter...
Dispatch three arrays, restricting the valid code paths to use only array types found in application-...