VTK  9.4.20241222
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
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
219typedef vtkTypeList::Create<double, float> Reals;
220
224typedef vtkTypeList::Unique<
225 vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
226 unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
227
232
233//------------------------------------------------------------------------------
240struct Dispatch;
241
242//------------------------------------------------------------------------------
249template <typename ArrayList>
251
252//------------------------------------------------------------------------------
260template <typename ArrayList, typename ValueTypeList>
262template <typename ValueTypeList>
264
265//------------------------------------------------------------------------------
273struct Dispatch2;
274
275//------------------------------------------------------------------------------
284template <typename ArrayList>
286struct Dispatch2SameValueType;
287
288//------------------------------------------------------------------------------
298template <typename ArrayList1, typename ArrayList2>
300
301//------------------------------------------------------------------------------
313template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2>
315template <typename ValueTypeList1, typename ValueTypeList2>
317
318//------------------------------------------------------------------------------
329template <typename ArrayList1, typename ArrayList2>
331
332//------------------------------------------------------------------------------
344template <typename ArrayList, typename ValueTypeList>
346template <typename ValueTypeList>
348
349//------------------------------------------------------------------------------
357struct Dispatch3;
358
359//------------------------------------------------------------------------------
368template <typename ArrayList>
370struct Dispatch3SameValueType;
371
372//------------------------------------------------------------------------------
383template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
385
386//------------------------------------------------------------------------------
400template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2,
401 typename ValueTypeList3>
403template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
405
406//------------------------------------------------------------------------------
417template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
419
420//------------------------------------------------------------------------------
432template <typename ArrayList, typename ValueTypeList>
434template <typename ValueTypeList>
436
437//------------------------------------------------------------------------------
442template <typename ArrayList, typename ValueList>
444
445VTK_ABI_NAMESPACE_END
446} // end namespace vtkArrayDispatch
447
448#include "vtkArrayDispatch.txx"
449
450#endif // vtkArrayDispatch_h
451// 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, longlong, short, signedchar, unsignedchar, unsignedint, unsignedlong, unsignedlonglong, unsignedshort, vtkIdType > >::Result Integrals
A Typelist containing all integral ValueTypes.
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.
Remove all duplicate types from TypeList TList, storing the new list in Result.
int vtkIdType
Definition vtkType.h:315