VTK  9.1.0
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 =========================================================================*/
214 #ifndef vtkArrayDispatch_h
215 #define vtkArrayDispatch_h
216 
217 #include "vtkArrayDispatchArrayList.h"
218 #include "vtkType.h"
219 #include "vtkTypeList.h"
220 
222 {
223 
227 typedef vtkTypeList::Create<double, float> Reals;
228 
232 typedef vtkTypeList::Unique<
233  vtkTypeList::Create<char, int, long, long long, short, signed char, unsigned char, unsigned int,
234  unsigned long, unsigned long long, unsigned short, vtkIdType>>::Result Integrals;
235 
240 
241 //------------------------------------------------------------------------------
248 struct Dispatch;
249 
250 //------------------------------------------------------------------------------
257 template <typename ArrayList>
259 
260 //------------------------------------------------------------------------------
268 template <typename ValueTypeList>
270 
271 //------------------------------------------------------------------------------
279 struct Dispatch2;
280 
281 //------------------------------------------------------------------------------
290 struct Dispatch2SameValueType;
291 
292 //------------------------------------------------------------------------------
302 template <typename ArrayList1, typename ArrayList2>
304 
305 //------------------------------------------------------------------------------
317 template <typename ValueTypeList1, typename ValueTypeList2>
319 
320 //------------------------------------------------------------------------------
331 template <typename ArrayList1, typename ArrayList2>
333 
334 //------------------------------------------------------------------------------
346 template <typename ValueTypeList>
348 
349 //------------------------------------------------------------------------------
357 struct Dispatch3;
358 
359 //------------------------------------------------------------------------------
368 struct Dispatch3SameValueType;
369 
370 //------------------------------------------------------------------------------
381 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
383 
384 //------------------------------------------------------------------------------
397 template <typename ValueTypeList1, typename ValueTypeList2, typename ValueTypeList3>
399 
400 //------------------------------------------------------------------------------
411 template <typename ArrayList1, typename ArrayList2, typename ArrayList3>
413 
414 //------------------------------------------------------------------------------
426 template <typename ValueTypeList>
428 
429 //------------------------------------------------------------------------------
434 template <typename ArrayList, typename ValueList>
436 
437 } // end namespace vtkArrayDispatch
438 
439 #include "vtkArrayDispatch.txx"
440 
441 #endif // vtkArrayDispatch_h
442 // 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, long long, short, signed char, unsigned char, unsigned int, unsigned long, unsigned long long, unsigned short, vtkIdType > >::Result Integrals
A Typelist containing all integral ValueTypes.
typename vtkTypeList::detail::CreateImpl< Ts... >::type Create
Definition: vtkTypeList.h:176
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.
Definition: vtkTypeList.h:166
Remove all duplicate types from TypeList TList, storing the new list in Result.
Definition: vtkTypeList.h:125
int vtkIdType
Definition: vtkType.h:332