VTK  9.7.20260724
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
204
205#ifndef vtkArrayDispatch_h
206#define vtkArrayDispatch_h
207
208#include "vtkArrayDispatchArrayList.h"
209#include "vtkType.h"
210#include "vtkTypeList.h"
211
213{
214VTK_ABI_NAMESPACE_BEGIN
215
219using Reals = vtkTypeList::Create<double, float>;
220
224using Integrals = vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char,
225 unsigned int, unsigned long, unsigned long long, unsigned short>;
226
231
232//------------------------------------------------------------------------------
239struct Dispatch;
240
241//------------------------------------------------------------------------------
248template <typename ArrayList>
250
251//------------------------------------------------------------------------------
259template <typename ValueTypeList>
261
262//------------------------------------------------------------------------------
269template <typename ArrayList, typename ValueTypeList>
271
272//------------------------------------------------------------------------------
280struct Dispatch2;
281
282//------------------------------------------------------------------------------
291struct Dispatch2SameValueType;
292
293//------------------------------------------------------------------------------
305template <typename ArrayList1, typename ArrayList2, typename ValueTypeList1,
306 typename ValueTypeList2>
308
309//------------------------------------------------------------------------------
319template <typename ArrayList1, typename ArrayList2>
321
322//------------------------------------------------------------------------------
334template <typename ValueTypeList1, typename ValueTypeList2>
336
337//------------------------------------------------------------------------------
348template <typename ArrayList1, typename ArrayList2>
350
351//------------------------------------------------------------------------------
363template <typename ValueTypeList>
365
366//------------------------------------------------------------------------------
378template <typename ArrayList, typename ValueTypeList>
380
381//------------------------------------------------------------------------------
389struct Dispatch3;
390
391//------------------------------------------------------------------------------
400struct Dispatch3SameValueType;
401
402//------------------------------------------------------------------------------
413template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
415
416//------------------------------------------------------------------------------
429template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
431
432//------------------------------------------------------------------------------
445template <typename ArrayList1, typename ArrayList2, typename ArrayList3, typename ValueTypeList1,
446 typename ValueTypeList2, typename ValueTypeList3>
448
449//------------------------------------------------------------------------------
460template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
462
463//------------------------------------------------------------------------------
475template <typename ValueTypeList>
477
478//------------------------------------------------------------------------------
490template <typename ArrayList, typename ValueTypeList>
492
493//----------------------------------------------------------------------------
498template <typename ArrayList, typename ArrayTypeTagList>
500
501//------------------------------------------------------------------------------
506template <typename ArrayList, typename DataTypeTagList>
508
509//------------------------------------------------------------------------------
514template <typename ArrayList, typename ValueList>
516
517VTK_ABI_NAMESPACE_END
518} // end namespace vtkArrayDispatch
519
520#include "vtkArrayDispatch.txx"
521
522#endif // vtkArrayDispatch_h
523// VTK-HeaderTest-Exclude: vtkArrayDispatch.h
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.
vtkTypeList::Create< double, float > Reals
A TypeList containing all real ValueTypes.
vtkTypeList::Append< Reals, Integrals >::Result AllTypes
A Typelist containing all standard VTK array ValueTypes.
Dispatch two arrays, restricting the valid code paths to use only array types found in ArrayList that...
Dispatch two arrays, restricting the valid code paths to use ValueType-filtered versions of the Array...
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 three arrays, restricting the valid code paths to use ValueType-filtered versions of ArrayLi...
Dispatch three arrays, restricting the valid code paths to use only array types found in ArrayList Ty...
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 a single array against all array types in ArrayList with the added restriction that the arra...
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::ArrayTypeTag that exist in ArrayTypeTagLi...
Filter the ArrayList to contain only arrays with ArrayType::DataTypeTag that exist in DataTypeTagList...
Filter the ArrayList to contain only arrays with ArrayType::ValueType that exist in ValueList.
Appends types/TypeLists to TypeList TList and stores the result in Result.