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{
195VTK_ABI_NAMESPACE_BEGIN
196
200typedef vtkTypeList::Create<double, float> Reals;
201
205typedef 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//------------------------------------------------------------------------------
221struct Dispatch;
222
223//------------------------------------------------------------------------------
230template <typename ArrayList>
232
233//------------------------------------------------------------------------------
241template <typename ArrayList, typename ValueTypeList>
243template <typename ValueTypeList>
245
246//------------------------------------------------------------------------------
254struct Dispatch2;
255
256//------------------------------------------------------------------------------
265template <typename ArrayList>
267struct Dispatch2SameValueType;
268
269//------------------------------------------------------------------------------
279template <typename ArrayList1, typename ArrayList2>
281
282//------------------------------------------------------------------------------
294template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2>
296template <typename ValueTypeList1, typename ValueTypeList2>
298
299//------------------------------------------------------------------------------
310template <typename ArrayList1, typename ArrayList2>
312
313//------------------------------------------------------------------------------
325template <typename ArrayList, typename ValueTypeList>
327template <typename ValueTypeList>
329
330//------------------------------------------------------------------------------
338struct Dispatch3;
339
340//------------------------------------------------------------------------------
349template <typename ArrayList>
351struct Dispatch3SameValueType;
352
353//------------------------------------------------------------------------------
364template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
366
367//------------------------------------------------------------------------------
381template <typename ArrayList, typename ValueTypeList1, typename ValueTypeList2,
382 typename ValueTypeList3>
384template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
386
387//------------------------------------------------------------------------------
398template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
400
401//------------------------------------------------------------------------------
413template <typename ArrayList, typename ValueTypeList>
415template <typename ValueTypeList>
417
418//------------------------------------------------------------------------------
423template <typename ArrayList, typename ValueList>
425
426VTK_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, 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