VTK  9.2.6
vtkArrayDispatch.h
Go to the documentation of this file.
1/*=========================================================================
2
3 Program: Visualization Toolkit
4 Module: vtkArrayDispatch.h
5
6 Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
7 All rights reserved.
8 See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
9
10 This software is distributed WITHOUT ANY WARRANTY; without even
11 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
12 PURPOSE. See the above copyright notice for more information.
13
14=========================================================================*/
197
198#ifndef vtkArrayDispatch_h
199#define vtkArrayDispatch_h
200
201#include "vtkArrayDispatchArrayList.h"
202#include "vtkType.h"
203#include "vtkTypeList.h"
204
206{
207
211typedef vtkTypeList::Create<double, float> Reals;
212
216typedef vtkTypeList::Unique<
217 vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
218 unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
219
224
225//------------------------------------------------------------------------------
232struct Dispatch;
233
234//------------------------------------------------------------------------------
241template <typename ArrayList>
243
244//------------------------------------------------------------------------------
252template <typename ValueTypeList>
254
255//------------------------------------------------------------------------------
263struct Dispatch2;
264
265//------------------------------------------------------------------------------
274struct Dispatch2SameValueType;
275
276//------------------------------------------------------------------------------
286template <typename ArrayList1, typename ArrayList2>
288
289//------------------------------------------------------------------------------
301template <typename ValueTypeList1, typename ValueTypeList2>
303
304//------------------------------------------------------------------------------
315template <typename ArrayList1, typename ArrayList2>
317
318//------------------------------------------------------------------------------
330template <typename ValueTypeList>
332
333//------------------------------------------------------------------------------
341struct Dispatch3;
342
343//------------------------------------------------------------------------------
352struct Dispatch3SameValueType;
353
354//------------------------------------------------------------------------------
365template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
367
368//------------------------------------------------------------------------------
381template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
383
384//------------------------------------------------------------------------------
395template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
397
398//------------------------------------------------------------------------------
410template <typename ValueTypeList>
412
413//------------------------------------------------------------------------------
418template <typename ArrayList, typename ValueList>
420
421} // end namespace vtkArrayDispatch
422
423#include "vtkArrayDispatch.txx"
424
425#endif // vtkArrayDispatch_h
426// 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 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 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:332