VTK-m  2.0
Tuple.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 // **** DO NOT EDIT THIS FILE!!! ****
11 // This file is automatically generated by Tuple.h.in
12 
13 #ifndef vtk_m_Tuple_h
14 #define vtk_m_Tuple_h
15 
16 #include <vtkm/Types.h>
17 
19 #include <vtkm/internal/IndexTag.h>
20 
21 
22 
23 namespace vtkm
24 {
25 
34 template <typename... Ts>
35 class Tuple;
36 
41 template <typename TupleType>
42 using TupleSize = std::integral_constant<vtkm::IdComponent, TupleType::Size>;
43 
46 template <typename TupleType>
47 using tuple_size = std::integral_constant<std::size_t, static_cast<std::size_t>(TupleType::Size)>;
48 
49 namespace detail
50 {
51 
52 template <vtkm::IdComponent Index, typename TupleType>
53 struct TupleElementImpl
54 {
55  using type = decltype(TupleType::ElementTypeI(vtkm::internal::IndexTag<Index>{}));
56 };
57 
58 } // namespace detail
59 
62 template <vtkm::IdComponent Index, typename TupleType>
63 using TupleElement = typename detail::TupleElementImpl<Index, TupleType>::type;
64 
67 template <std::size_t Index, typename TupleType>
69 {
71 };
72 
75 template <std::size_t Index, typename TupleType>
77 
82 template <vtkm::IdComponent Index, typename... Ts>
83 VTKM_EXEC_CONT auto Get(const vtkm::Tuple<Ts...>& tuple) -> decltype(tuple.template Get<Index>())
84 {
85  return tuple.template Get<Index>();
86 }
87 
89 template <vtkm::IdComponent Index, typename... Ts>
90 VTKM_EXEC_CONT auto Get(vtkm::Tuple<Ts...>& tuple) -> decltype(tuple.template Get<Index>())
91 {
92  return tuple.template Get<Index>();
93 }
95 
100 template <std::size_t Index, typename... Ts>
102  -> decltype(vtkm::Get<static_cast<vtkm::IdComponent>(Index)>(tuple))
103 {
104  return vtkm::Get<static_cast<vtkm::IdComponent>(Index)>(tuple);
105 }
106 
108 template <std::size_t Index, typename... Ts>
110  -> decltype(vtkm::Get<static_cast<vtkm::IdComponent>(Index)>(tuple))
111 {
112  return vtkm::Get<static_cast<vtkm::IdComponent>(Index)>(tuple);
113 }
115 
119 template <typename... Ts>
121 {
122  return vtkm::Tuple<typename std::decay<Ts>::type...>(std::forward<Ts>(args)...);
123 }
124 
128 template <typename... Ts>
129 VTKM_EXEC_CONT auto make_tuple(Ts&&... args) -> decltype(vtkm::MakeTuple(std::forward<Ts>(args)...))
130 {
131  return vtkm::MakeTuple(std::forward<Ts>(args)...);
132 }
133 
135 namespace detail
136 {
137 struct TupleTransformFunctor
138 {
140  template <typename Function, typename... Ts>
141  VTKM_EXEC_CONT auto operator()(Function&& f, Ts&&... args)
142  -> decltype(vtkm::MakeTuple(f(std::forward<Ts>(args))...))
143  {
144  return vtkm::MakeTuple(f(std::forward<Ts>(args))...);
145  }
146 };
147 
149 template <typename TupleType, typename Function>
150 VTKM_EXEC_CONT auto TupleTransform(TupleType&& tuple, Function&& f)
151  -> decltype(tuple.Apply(TupleTransformFunctor{}, std::forward<Function>(f)))
152 {
153  return tuple.Apply(TupleTransformFunctor{}, std::forward<Function>(f));
154 }
155 
156 struct TupleForEachFunctor
157 {
159  template <typename Function, typename... Ts>
160  VTKM_EXEC_CONT void operator()(Function&& f, Ts&&... args)
161  {
162  (void)std::initializer_list<bool>{ (f(std::forward<Ts>(args)), false)... };
163  }
164 };
165 
167 template <typename TupleType, typename Function>
168 VTKM_EXEC_CONT auto TupleForEach(TupleType&& tuple, Function&& f)
169  -> decltype(tuple.Apply(TupleForEachFunctor{}, std::forward<Function>(f)))
170 {
171  return tuple.Apply(TupleForEachFunctor{}, std::forward<Function>(f));
172 }
173 
174 } // namespace detail
176 
177 template <>
178 class Tuple<>
179 {
180 public:
181  static constexpr vtkm::IdComponent Size = 0;
182 
184  template <typename Function, typename... Args>
185  VTKM_EXEC_CONT auto Apply(Function&& f, Args&&... args)
186  -> decltype(f(std::forward<Args>(args)...))
187  {
188  return f(std::forward<Args>(args)...);
189  }
191  template <typename Function, typename... Args>
192  VTKM_EXEC_CONT auto Apply(Function&& f, Args&&... args) const
193  -> decltype(f(std::forward<Args>(args)...))
194  {
195  return f(std::forward<Args>(args)...);
196  }
197 
199  template <typename Function>
200  VTKM_EXEC_CONT void ForEach(Function&&) const
201  {
202  }
203 
205  template <typename Function>
207  {
208  return vtkm::Tuple<>{};
209  }
210 };
211 
212 // clang-format off
213 
214 template<typename T0>
215 class Tuple<T0>
216 {
217  T0 Value0;
218  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
219  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
220  {
221  return this->Value0;
222  }
223  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
224  {
225  return this->Value0;
226  }
227 
228 
229  // Invalid indices
230  template <vtkm::IdComponent Index>
231  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
232 
233  template <vtkm::IdComponent, typename>
234  friend struct detail::TupleElementImpl;
235 
236 public:
237  static constexpr vtkm::IdComponent Size = 1;
238  template <vtkm::IdComponent Index>
240 
241  Tuple() = default;
242  Tuple(Tuple&&) = default;
243  Tuple(const Tuple&) = default;
244  ~Tuple() = default;
245  Tuple& operator=(Tuple&&) = default;
246  Tuple& operator=(const Tuple&) = default;
247 
249  template <typename A0>
251  : Value0(std::forward<A0>(a0))
252  {
253  }
254 
255  template <vtkm::IdComponent Index>
256  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
257  {
258  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
259  }
260 
261  template <vtkm::IdComponent Index>
262  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
263  {
264  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
265  }
266 
268  template <typename Function, typename... Args>
270  auto Apply(Function&& f, Args&&... args)
271  -> decltype(f(std::forward<Args>(args)..., Value0))
272  {
273  return f(std::forward<Args>(args)..., Value0);
274  }
276  template <typename Function, typename... Args>
278  auto Apply(Function&& f, Args&&... args) const
279  -> decltype(f(std::forward<Args>(args)..., Value0))
280  {
281  return f(std::forward<Args>(args)..., Value0);
282  }
283 
285  template <typename Function>
286  VTKM_EXEC_CONT void ForEach(Function&& f)
287  {
288  detail::TupleForEach(*this, std::forward<Function>(f));
289  }
291  template <typename Function>
292  VTKM_EXEC_CONT void ForEach(Function&& f) const
293  {
294  detail::TupleForEach(*this, std::forward<Function>(f));
295  }
296 
298  template <typename Function>
299  VTKM_EXEC_CONT auto Transform(Function&& f)
300  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
301  {
302  return detail::TupleTransform(*this, std::forward<Function>(f));
303  }
305  template <typename Function>
306  VTKM_EXEC_CONT auto Transform(Function&& f) const
307  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
308  {
309  return detail::TupleTransform(*this, std::forward<Function>(f));
310  }
311 };
312 
313 template<typename T0, typename T1>
314 class Tuple<T0, T1>
315 {
316  T0 Value0;
317  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
318  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
319  {
320  return this->Value0;
321  }
322  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
323  {
324  return this->Value0;
325  }
326 
327  T1 Value1;
328  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
329  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
330  {
331  return this->Value1;
332  }
333  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
334  {
335  return this->Value1;
336  }
337 
338 
339  // Invalid indices
340  template <vtkm::IdComponent Index>
341  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
342 
343  template <vtkm::IdComponent, typename>
344  friend struct detail::TupleElementImpl;
345 
346 public:
347  static constexpr vtkm::IdComponent Size = 2;
348  template <vtkm::IdComponent Index>
350 
351  Tuple() = default;
352  Tuple(Tuple&&) = default;
353  Tuple(const Tuple&) = default;
354  ~Tuple() = default;
355  Tuple& operator=(Tuple&&) = default;
356  Tuple& operator=(const Tuple&) = default;
357 
359  template <typename A0, typename A1>
360  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1)
361  : Value0(std::forward<A0>(a0))
362  , Value1(std::forward<A1>(a1))
363  {
364  }
365 
366  template <vtkm::IdComponent Index>
367  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
368  {
369  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
370  }
371 
372  template <vtkm::IdComponent Index>
373  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
374  {
375  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
376  }
377 
379  template <typename Function, typename... Args>
381  auto Apply(Function&& f, Args&&... args)
382  -> decltype(f(std::forward<Args>(args)..., Value0, Value1))
383  {
384  return f(std::forward<Args>(args)..., Value0, Value1);
385  }
387  template <typename Function, typename... Args>
389  auto Apply(Function&& f, Args&&... args) const
390  -> decltype(f(std::forward<Args>(args)..., Value0, Value1))
391  {
392  return f(std::forward<Args>(args)..., Value0, Value1);
393  }
394 
396  template <typename Function>
397  VTKM_EXEC_CONT void ForEach(Function&& f)
398  {
399  detail::TupleForEach(*this, std::forward<Function>(f));
400  }
402  template <typename Function>
403  VTKM_EXEC_CONT void ForEach(Function&& f) const
404  {
405  detail::TupleForEach(*this, std::forward<Function>(f));
406  }
407 
409  template <typename Function>
410  VTKM_EXEC_CONT auto Transform(Function&& f)
411  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
412  {
413  return detail::TupleTransform(*this, std::forward<Function>(f));
414  }
416  template <typename Function>
417  VTKM_EXEC_CONT auto Transform(Function&& f) const
418  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
419  {
420  return detail::TupleTransform(*this, std::forward<Function>(f));
421  }
422 };
423 
424 template<typename T0, typename T1, typename T2>
425 class Tuple<T0, T1, T2>
426 {
427  T0 Value0;
428  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
429  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
430  {
431  return this->Value0;
432  }
433  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
434  {
435  return this->Value0;
436  }
437 
438  T1 Value1;
439  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
440  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
441  {
442  return this->Value1;
443  }
444  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
445  {
446  return this->Value1;
447  }
448 
449  T2 Value2;
450  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
451  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
452  {
453  return this->Value2;
454  }
455  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
456  {
457  return this->Value2;
458  }
459 
460 
461  // Invalid indices
462  template <vtkm::IdComponent Index>
463  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
464 
465  template <vtkm::IdComponent, typename>
466  friend struct detail::TupleElementImpl;
467 
468 public:
469  static constexpr vtkm::IdComponent Size = 3;
470  template <vtkm::IdComponent Index>
472 
473  Tuple() = default;
474  Tuple(Tuple&&) = default;
475  Tuple(const Tuple&) = default;
476  ~Tuple() = default;
477  Tuple& operator=(Tuple&&) = default;
478  Tuple& operator=(const Tuple&) = default;
479 
481  template <typename A0, typename A1, typename A2>
482  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2)
483  : Value0(std::forward<A0>(a0))
484  , Value1(std::forward<A1>(a1))
485  , Value2(std::forward<A2>(a2))
486  {
487  }
488 
489  template <vtkm::IdComponent Index>
490  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
491  {
492  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
493  }
494 
495  template <vtkm::IdComponent Index>
496  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
497  {
498  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
499  }
500 
502  template <typename Function, typename... Args>
504  auto Apply(Function&& f, Args&&... args)
505  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2))
506  {
507  return f(std::forward<Args>(args)..., Value0, Value1, Value2);
508  }
510  template <typename Function, typename... Args>
512  auto Apply(Function&& f, Args&&... args) const
513  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2))
514  {
515  return f(std::forward<Args>(args)..., Value0, Value1, Value2);
516  }
517 
519  template <typename Function>
520  VTKM_EXEC_CONT void ForEach(Function&& f)
521  {
522  detail::TupleForEach(*this, std::forward<Function>(f));
523  }
525  template <typename Function>
526  VTKM_EXEC_CONT void ForEach(Function&& f) const
527  {
528  detail::TupleForEach(*this, std::forward<Function>(f));
529  }
530 
532  template <typename Function>
533  VTKM_EXEC_CONT auto Transform(Function&& f)
534  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
535  {
536  return detail::TupleTransform(*this, std::forward<Function>(f));
537  }
539  template <typename Function>
540  VTKM_EXEC_CONT auto Transform(Function&& f) const
541  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
542  {
543  return detail::TupleTransform(*this, std::forward<Function>(f));
544  }
545 };
546 
547 template<typename T0, typename T1, typename T2, typename T3>
548 class Tuple<T0, T1, T2, T3>
549 {
550  T0 Value0;
551  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
552  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
553  {
554  return this->Value0;
555  }
556  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
557  {
558  return this->Value0;
559  }
560 
561  T1 Value1;
562  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
563  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
564  {
565  return this->Value1;
566  }
567  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
568  {
569  return this->Value1;
570  }
571 
572  T2 Value2;
573  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
574  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
575  {
576  return this->Value2;
577  }
578  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
579  {
580  return this->Value2;
581  }
582 
583  T3 Value3;
584  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
585  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
586  {
587  return this->Value3;
588  }
589  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
590  {
591  return this->Value3;
592  }
593 
594 
595  // Invalid indices
596  template <vtkm::IdComponent Index>
597  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
598 
599  template <vtkm::IdComponent, typename>
600  friend struct detail::TupleElementImpl;
601 
602 public:
603  static constexpr vtkm::IdComponent Size = 4;
604  template <vtkm::IdComponent Index>
606 
607  Tuple() = default;
608  Tuple(Tuple&&) = default;
609  Tuple(const Tuple&) = default;
610  ~Tuple() = default;
611  Tuple& operator=(Tuple&&) = default;
612  Tuple& operator=(const Tuple&) = default;
613 
615  template <typename A0, typename A1, typename A2, typename A3>
616  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3)
617  : Value0(std::forward<A0>(a0))
618  , Value1(std::forward<A1>(a1))
619  , Value2(std::forward<A2>(a2))
620  , Value3(std::forward<A3>(a3))
621  {
622  }
623 
624  template <vtkm::IdComponent Index>
625  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
626  {
627  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
628  }
629 
630  template <vtkm::IdComponent Index>
631  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
632  {
633  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
634  }
635 
637  template <typename Function, typename... Args>
639  auto Apply(Function&& f, Args&&... args)
640  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3))
641  {
642  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3);
643  }
645  template <typename Function, typename... Args>
647  auto Apply(Function&& f, Args&&... args) const
648  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3))
649  {
650  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3);
651  }
652 
654  template <typename Function>
655  VTKM_EXEC_CONT void ForEach(Function&& f)
656  {
657  detail::TupleForEach(*this, std::forward<Function>(f));
658  }
660  template <typename Function>
661  VTKM_EXEC_CONT void ForEach(Function&& f) const
662  {
663  detail::TupleForEach(*this, std::forward<Function>(f));
664  }
665 
667  template <typename Function>
668  VTKM_EXEC_CONT auto Transform(Function&& f)
669  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
670  {
671  return detail::TupleTransform(*this, std::forward<Function>(f));
672  }
674  template <typename Function>
675  VTKM_EXEC_CONT auto Transform(Function&& f) const
676  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
677  {
678  return detail::TupleTransform(*this, std::forward<Function>(f));
679  }
680 };
681 
682 template<typename T0, typename T1, typename T2, typename T3, typename T4>
683 class Tuple<T0, T1, T2, T3, T4>
684 {
685  T0 Value0;
686  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
687  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
688  {
689  return this->Value0;
690  }
691  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
692  {
693  return this->Value0;
694  }
695 
696  T1 Value1;
697  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
698  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
699  {
700  return this->Value1;
701  }
702  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
703  {
704  return this->Value1;
705  }
706 
707  T2 Value2;
708  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
709  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
710  {
711  return this->Value2;
712  }
713  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
714  {
715  return this->Value2;
716  }
717 
718  T3 Value3;
719  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
720  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
721  {
722  return this->Value3;
723  }
724  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
725  {
726  return this->Value3;
727  }
728 
729  T4 Value4;
730  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
731  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
732  {
733  return this->Value4;
734  }
735  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
736  {
737  return this->Value4;
738  }
739 
740 
741  // Invalid indices
742  template <vtkm::IdComponent Index>
743  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
744 
745  template <vtkm::IdComponent, typename>
746  friend struct detail::TupleElementImpl;
747 
748 public:
749  static constexpr vtkm::IdComponent Size = 5;
750  template <vtkm::IdComponent Index>
752 
753  Tuple() = default;
754  Tuple(Tuple&&) = default;
755  Tuple(const Tuple&) = default;
756  ~Tuple() = default;
757  Tuple& operator=(Tuple&&) = default;
758  Tuple& operator=(const Tuple&) = default;
759 
761  template <typename A0, typename A1, typename A2, typename A3, typename A4>
762  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4)
763  : Value0(std::forward<A0>(a0))
764  , Value1(std::forward<A1>(a1))
765  , Value2(std::forward<A2>(a2))
766  , Value3(std::forward<A3>(a3))
767  , Value4(std::forward<A4>(a4))
768  {
769  }
770 
771  template <vtkm::IdComponent Index>
772  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
773  {
774  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
775  }
776 
777  template <vtkm::IdComponent Index>
778  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
779  {
780  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
781  }
782 
784  template <typename Function, typename... Args>
786  auto Apply(Function&& f, Args&&... args)
787  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4))
788  {
789  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4);
790  }
792  template <typename Function, typename... Args>
794  auto Apply(Function&& f, Args&&... args) const
795  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4))
796  {
797  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4);
798  }
799 
801  template <typename Function>
802  VTKM_EXEC_CONT void ForEach(Function&& f)
803  {
804  detail::TupleForEach(*this, std::forward<Function>(f));
805  }
807  template <typename Function>
808  VTKM_EXEC_CONT void ForEach(Function&& f) const
809  {
810  detail::TupleForEach(*this, std::forward<Function>(f));
811  }
812 
814  template <typename Function>
815  VTKM_EXEC_CONT auto Transform(Function&& f)
816  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
817  {
818  return detail::TupleTransform(*this, std::forward<Function>(f));
819  }
821  template <typename Function>
822  VTKM_EXEC_CONT auto Transform(Function&& f) const
823  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
824  {
825  return detail::TupleTransform(*this, std::forward<Function>(f));
826  }
827 };
828 
829 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5>
830 class Tuple<T0, T1, T2, T3, T4, T5>
831 {
832  T0 Value0;
833  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
834  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
835  {
836  return this->Value0;
837  }
838  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
839  {
840  return this->Value0;
841  }
842 
843  T1 Value1;
844  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
845  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
846  {
847  return this->Value1;
848  }
849  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
850  {
851  return this->Value1;
852  }
853 
854  T2 Value2;
855  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
856  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
857  {
858  return this->Value2;
859  }
860  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
861  {
862  return this->Value2;
863  }
864 
865  T3 Value3;
866  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
867  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
868  {
869  return this->Value3;
870  }
871  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
872  {
873  return this->Value3;
874  }
875 
876  T4 Value4;
877  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
878  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
879  {
880  return this->Value4;
881  }
882  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
883  {
884  return this->Value4;
885  }
886 
887  T5 Value5;
888  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
889  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
890  {
891  return this->Value5;
892  }
893  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
894  {
895  return this->Value5;
896  }
897 
898 
899  // Invalid indices
900  template <vtkm::IdComponent Index>
901  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
902 
903  template <vtkm::IdComponent, typename>
904  friend struct detail::TupleElementImpl;
905 
906 public:
907  static constexpr vtkm::IdComponent Size = 6;
908  template <vtkm::IdComponent Index>
910 
911  Tuple() = default;
912  Tuple(Tuple&&) = default;
913  Tuple(const Tuple&) = default;
914  ~Tuple() = default;
915  Tuple& operator=(Tuple&&) = default;
916  Tuple& operator=(const Tuple&) = default;
917 
919  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5>
920  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5)
921  : Value0(std::forward<A0>(a0))
922  , Value1(std::forward<A1>(a1))
923  , Value2(std::forward<A2>(a2))
924  , Value3(std::forward<A3>(a3))
925  , Value4(std::forward<A4>(a4))
926  , Value5(std::forward<A5>(a5))
927  {
928  }
929 
930  template <vtkm::IdComponent Index>
931  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
932  {
933  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
934  }
935 
936  template <vtkm::IdComponent Index>
937  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
938  {
939  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
940  }
941 
943  template <typename Function, typename... Args>
945  auto Apply(Function&& f, Args&&... args)
946  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5))
947  {
948  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5);
949  }
951  template <typename Function, typename... Args>
953  auto Apply(Function&& f, Args&&... args) const
954  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5))
955  {
956  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5);
957  }
958 
960  template <typename Function>
961  VTKM_EXEC_CONT void ForEach(Function&& f)
962  {
963  detail::TupleForEach(*this, std::forward<Function>(f));
964  }
966  template <typename Function>
967  VTKM_EXEC_CONT void ForEach(Function&& f) const
968  {
969  detail::TupleForEach(*this, std::forward<Function>(f));
970  }
971 
973  template <typename Function>
974  VTKM_EXEC_CONT auto Transform(Function&& f)
975  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
976  {
977  return detail::TupleTransform(*this, std::forward<Function>(f));
978  }
980  template <typename Function>
981  VTKM_EXEC_CONT auto Transform(Function&& f) const
982  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
983  {
984  return detail::TupleTransform(*this, std::forward<Function>(f));
985  }
986 };
987 
988 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6>
989 class Tuple<T0, T1, T2, T3, T4, T5, T6>
990 {
991  T0 Value0;
992  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
993  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
994  {
995  return this->Value0;
996  }
997  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
998  {
999  return this->Value0;
1000  }
1001 
1003  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1004  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1005  {
1006  return this->Value1;
1007  }
1008  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1009  {
1010  return this->Value1;
1011  }
1012 
1014  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1015  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1016  {
1017  return this->Value2;
1018  }
1019  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1020  {
1021  return this->Value2;
1022  }
1023 
1025  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
1026  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
1027  {
1028  return this->Value3;
1029  }
1030  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
1031  {
1032  return this->Value3;
1033  }
1034 
1036  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
1037  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
1038  {
1039  return this->Value4;
1040  }
1041  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
1042  {
1043  return this->Value4;
1044  }
1045 
1047  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
1048  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
1049  {
1050  return this->Value5;
1051  }
1052  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
1053  {
1054  return this->Value5;
1055  }
1056 
1058  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
1059  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
1060  {
1061  return this->Value6;
1062  }
1063  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
1064  {
1065  return this->Value6;
1066  }
1067 
1068 
1069  // Invalid indices
1070  template <vtkm::IdComponent Index>
1071  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
1072 
1073  template <vtkm::IdComponent, typename>
1074  friend struct detail::TupleElementImpl;
1075 
1076 public:
1077  static constexpr vtkm::IdComponent Size = 7;
1078  template <vtkm::IdComponent Index>
1080 
1081  Tuple() = default;
1082  Tuple(Tuple&&) = default;
1083  Tuple(const Tuple&) = default;
1084  ~Tuple() = default;
1085  Tuple& operator=(Tuple&&) = default;
1086  Tuple& operator=(const Tuple&) = default;
1087 
1089  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6>
1090  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6)
1091  : Value0(std::forward<A0>(a0))
1092  , Value1(std::forward<A1>(a1))
1093  , Value2(std::forward<A2>(a2))
1094  , Value3(std::forward<A3>(a3))
1095  , Value4(std::forward<A4>(a4))
1096  , Value5(std::forward<A5>(a5))
1097  , Value6(std::forward<A6>(a6))
1098  {
1099  }
1100 
1101  template <vtkm::IdComponent Index>
1102  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1103  {
1104  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1105  }
1106 
1107  template <vtkm::IdComponent Index>
1108  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1109  {
1110  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1111  }
1112 
1114  template <typename Function, typename... Args>
1116  auto Apply(Function&& f, Args&&... args)
1117  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6))
1118  {
1119  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6);
1120  }
1122  template <typename Function, typename... Args>
1124  auto Apply(Function&& f, Args&&... args) const
1125  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6))
1126  {
1127  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6);
1128  }
1129 
1131  template <typename Function>
1132  VTKM_EXEC_CONT void ForEach(Function&& f)
1133  {
1134  detail::TupleForEach(*this, std::forward<Function>(f));
1135  }
1137  template <typename Function>
1138  VTKM_EXEC_CONT void ForEach(Function&& f) const
1139  {
1140  detail::TupleForEach(*this, std::forward<Function>(f));
1141  }
1142 
1144  template <typename Function>
1145  VTKM_EXEC_CONT auto Transform(Function&& f)
1146  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1147  {
1148  return detail::TupleTransform(*this, std::forward<Function>(f));
1149  }
1151  template <typename Function>
1152  VTKM_EXEC_CONT auto Transform(Function&& f) const
1153  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1154  {
1155  return detail::TupleTransform(*this, std::forward<Function>(f));
1156  }
1157 };
1158 
1159 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7>
1160 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7>
1161 {
1163  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
1164  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
1165  {
1166  return this->Value0;
1167  }
1168  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
1169  {
1170  return this->Value0;
1171  }
1172 
1174  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1175  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1176  {
1177  return this->Value1;
1178  }
1179  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1180  {
1181  return this->Value1;
1182  }
1183 
1185  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1186  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1187  {
1188  return this->Value2;
1189  }
1190  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1191  {
1192  return this->Value2;
1193  }
1194 
1196  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
1197  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
1198  {
1199  return this->Value3;
1200  }
1201  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
1202  {
1203  return this->Value3;
1204  }
1205 
1207  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
1208  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
1209  {
1210  return this->Value4;
1211  }
1212  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
1213  {
1214  return this->Value4;
1215  }
1216 
1218  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
1219  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
1220  {
1221  return this->Value5;
1222  }
1223  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
1224  {
1225  return this->Value5;
1226  }
1227 
1229  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
1230  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
1231  {
1232  return this->Value6;
1233  }
1234  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
1235  {
1236  return this->Value6;
1237  }
1238 
1240  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
1241  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
1242  {
1243  return this->Value7;
1244  }
1245  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
1246  {
1247  return this->Value7;
1248  }
1249 
1250 
1251  // Invalid indices
1252  template <vtkm::IdComponent Index>
1253  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
1254 
1255  template <vtkm::IdComponent, typename>
1256  friend struct detail::TupleElementImpl;
1257 
1258 public:
1259  static constexpr vtkm::IdComponent Size = 8;
1260  template <vtkm::IdComponent Index>
1262 
1263  Tuple() = default;
1264  Tuple(Tuple&&) = default;
1265  Tuple(const Tuple&) = default;
1266  ~Tuple() = default;
1267  Tuple& operator=(Tuple&&) = default;
1268  Tuple& operator=(const Tuple&) = default;
1269 
1271  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7>
1272  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7)
1273  : Value0(std::forward<A0>(a0))
1274  , Value1(std::forward<A1>(a1))
1275  , Value2(std::forward<A2>(a2))
1276  , Value3(std::forward<A3>(a3))
1277  , Value4(std::forward<A4>(a4))
1278  , Value5(std::forward<A5>(a5))
1279  , Value6(std::forward<A6>(a6))
1280  , Value7(std::forward<A7>(a7))
1281  {
1282  }
1283 
1284  template <vtkm::IdComponent Index>
1285  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1286  {
1287  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1288  }
1289 
1290  template <vtkm::IdComponent Index>
1291  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1292  {
1293  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1294  }
1295 
1297  template <typename Function, typename... Args>
1299  auto Apply(Function&& f, Args&&... args)
1300  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7))
1301  {
1302  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7);
1303  }
1305  template <typename Function, typename... Args>
1307  auto Apply(Function&& f, Args&&... args) const
1308  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7))
1309  {
1310  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7);
1311  }
1312 
1314  template <typename Function>
1315  VTKM_EXEC_CONT void ForEach(Function&& f)
1316  {
1317  detail::TupleForEach(*this, std::forward<Function>(f));
1318  }
1320  template <typename Function>
1321  VTKM_EXEC_CONT void ForEach(Function&& f) const
1322  {
1323  detail::TupleForEach(*this, std::forward<Function>(f));
1324  }
1325 
1327  template <typename Function>
1328  VTKM_EXEC_CONT auto Transform(Function&& f)
1329  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1330  {
1331  return detail::TupleTransform(*this, std::forward<Function>(f));
1332  }
1334  template <typename Function>
1335  VTKM_EXEC_CONT auto Transform(Function&& f) const
1336  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1337  {
1338  return detail::TupleTransform(*this, std::forward<Function>(f));
1339  }
1340 };
1341 
1342 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8>
1343 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8>
1344 {
1346  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
1347  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
1348  {
1349  return this->Value0;
1350  }
1351  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
1352  {
1353  return this->Value0;
1354  }
1355 
1357  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1358  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1359  {
1360  return this->Value1;
1361  }
1362  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1363  {
1364  return this->Value1;
1365  }
1366 
1368  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1369  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1370  {
1371  return this->Value2;
1372  }
1373  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1374  {
1375  return this->Value2;
1376  }
1377 
1379  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
1380  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
1381  {
1382  return this->Value3;
1383  }
1384  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
1385  {
1386  return this->Value3;
1387  }
1388 
1390  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
1391  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
1392  {
1393  return this->Value4;
1394  }
1395  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
1396  {
1397  return this->Value4;
1398  }
1399 
1401  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
1402  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
1403  {
1404  return this->Value5;
1405  }
1406  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
1407  {
1408  return this->Value5;
1409  }
1410 
1412  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
1413  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
1414  {
1415  return this->Value6;
1416  }
1417  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
1418  {
1419  return this->Value6;
1420  }
1421 
1423  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
1424  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
1425  {
1426  return this->Value7;
1427  }
1428  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
1429  {
1430  return this->Value7;
1431  }
1432 
1434  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
1435  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
1436  {
1437  return this->Value8;
1438  }
1439  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
1440  {
1441  return this->Value8;
1442  }
1443 
1444 
1445  // Invalid indices
1446  template <vtkm::IdComponent Index>
1447  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
1448 
1449  template <vtkm::IdComponent, typename>
1450  friend struct detail::TupleElementImpl;
1451 
1452 public:
1453  static constexpr vtkm::IdComponent Size = 9;
1454  template <vtkm::IdComponent Index>
1456 
1457  Tuple() = default;
1458  Tuple(Tuple&&) = default;
1459  Tuple(const Tuple&) = default;
1460  ~Tuple() = default;
1461  Tuple& operator=(Tuple&&) = default;
1462  Tuple& operator=(const Tuple&) = default;
1463 
1465  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8>
1466  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8)
1467  : Value0(std::forward<A0>(a0))
1468  , Value1(std::forward<A1>(a1))
1469  , Value2(std::forward<A2>(a2))
1470  , Value3(std::forward<A3>(a3))
1471  , Value4(std::forward<A4>(a4))
1472  , Value5(std::forward<A5>(a5))
1473  , Value6(std::forward<A6>(a6))
1474  , Value7(std::forward<A7>(a7))
1475  , Value8(std::forward<A8>(a8))
1476  {
1477  }
1478 
1479  template <vtkm::IdComponent Index>
1480  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1481  {
1482  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1483  }
1484 
1485  template <vtkm::IdComponent Index>
1486  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1487  {
1488  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1489  }
1490 
1492  template <typename Function, typename... Args>
1494  auto Apply(Function&& f, Args&&... args)
1495  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8))
1496  {
1497  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8);
1498  }
1500  template <typename Function, typename... Args>
1502  auto Apply(Function&& f, Args&&... args) const
1503  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8))
1504  {
1505  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8);
1506  }
1507 
1509  template <typename Function>
1510  VTKM_EXEC_CONT void ForEach(Function&& f)
1511  {
1512  detail::TupleForEach(*this, std::forward<Function>(f));
1513  }
1515  template <typename Function>
1516  VTKM_EXEC_CONT void ForEach(Function&& f) const
1517  {
1518  detail::TupleForEach(*this, std::forward<Function>(f));
1519  }
1520 
1522  template <typename Function>
1523  VTKM_EXEC_CONT auto Transform(Function&& f)
1524  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1525  {
1526  return detail::TupleTransform(*this, std::forward<Function>(f));
1527  }
1529  template <typename Function>
1530  VTKM_EXEC_CONT auto Transform(Function&& f) const
1531  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1532  {
1533  return detail::TupleTransform(*this, std::forward<Function>(f));
1534  }
1535 };
1536 
1537 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9>
1538 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>
1539 {
1541  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
1542  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
1543  {
1544  return this->Value0;
1545  }
1546  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
1547  {
1548  return this->Value0;
1549  }
1550 
1552  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1553  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1554  {
1555  return this->Value1;
1556  }
1557  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1558  {
1559  return this->Value1;
1560  }
1561 
1563  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1564  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1565  {
1566  return this->Value2;
1567  }
1568  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1569  {
1570  return this->Value2;
1571  }
1572 
1574  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
1575  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
1576  {
1577  return this->Value3;
1578  }
1579  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
1580  {
1581  return this->Value3;
1582  }
1583 
1585  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
1586  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
1587  {
1588  return this->Value4;
1589  }
1590  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
1591  {
1592  return this->Value4;
1593  }
1594 
1596  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
1597  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
1598  {
1599  return this->Value5;
1600  }
1601  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
1602  {
1603  return this->Value5;
1604  }
1605 
1607  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
1608  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
1609  {
1610  return this->Value6;
1611  }
1612  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
1613  {
1614  return this->Value6;
1615  }
1616 
1618  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
1619  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
1620  {
1621  return this->Value7;
1622  }
1623  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
1624  {
1625  return this->Value7;
1626  }
1627 
1629  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
1630  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
1631  {
1632  return this->Value8;
1633  }
1634  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
1635  {
1636  return this->Value8;
1637  }
1638 
1640  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
1641  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
1642  {
1643  return this->Value9;
1644  }
1645  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
1646  {
1647  return this->Value9;
1648  }
1649 
1650 
1651  // Invalid indices
1652  template <vtkm::IdComponent Index>
1653  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
1654 
1655  template <vtkm::IdComponent, typename>
1656  friend struct detail::TupleElementImpl;
1657 
1658 public:
1659  static constexpr vtkm::IdComponent Size = 10;
1660  template <vtkm::IdComponent Index>
1662 
1663  Tuple() = default;
1664  Tuple(Tuple&&) = default;
1665  Tuple(const Tuple&) = default;
1666  ~Tuple() = default;
1667  Tuple& operator=(Tuple&&) = default;
1668  Tuple& operator=(const Tuple&) = default;
1669 
1671  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9>
1672  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9)
1673  : Value0(std::forward<A0>(a0))
1674  , Value1(std::forward<A1>(a1))
1675  , Value2(std::forward<A2>(a2))
1676  , Value3(std::forward<A3>(a3))
1677  , Value4(std::forward<A4>(a4))
1678  , Value5(std::forward<A5>(a5))
1679  , Value6(std::forward<A6>(a6))
1680  , Value7(std::forward<A7>(a7))
1681  , Value8(std::forward<A8>(a8))
1682  , Value9(std::forward<A9>(a9))
1683  {
1684  }
1685 
1686  template <vtkm::IdComponent Index>
1687  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1688  {
1689  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1690  }
1691 
1692  template <vtkm::IdComponent Index>
1693  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1694  {
1695  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1696  }
1697 
1699  template <typename Function, typename... Args>
1701  auto Apply(Function&& f, Args&&... args)
1702  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9))
1703  {
1704  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9);
1705  }
1707  template <typename Function, typename... Args>
1709  auto Apply(Function&& f, Args&&... args) const
1710  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9))
1711  {
1712  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9);
1713  }
1714 
1716  template <typename Function>
1717  VTKM_EXEC_CONT void ForEach(Function&& f)
1718  {
1719  detail::TupleForEach(*this, std::forward<Function>(f));
1720  }
1722  template <typename Function>
1723  VTKM_EXEC_CONT void ForEach(Function&& f) const
1724  {
1725  detail::TupleForEach(*this, std::forward<Function>(f));
1726  }
1727 
1729  template <typename Function>
1730  VTKM_EXEC_CONT auto Transform(Function&& f)
1731  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1732  {
1733  return detail::TupleTransform(*this, std::forward<Function>(f));
1734  }
1736  template <typename Function>
1737  VTKM_EXEC_CONT auto Transform(Function&& f) const
1738  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1739  {
1740  return detail::TupleTransform(*this, std::forward<Function>(f));
1741  }
1742 };
1743 
1744 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10>
1745 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>
1746 {
1748  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
1749  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
1750  {
1751  return this->Value0;
1752  }
1753  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
1754  {
1755  return this->Value0;
1756  }
1757 
1759  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1760  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1761  {
1762  return this->Value1;
1763  }
1764  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1765  {
1766  return this->Value1;
1767  }
1768 
1770  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1771  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1772  {
1773  return this->Value2;
1774  }
1775  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1776  {
1777  return this->Value2;
1778  }
1779 
1781  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
1782  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
1783  {
1784  return this->Value3;
1785  }
1786  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
1787  {
1788  return this->Value3;
1789  }
1790 
1792  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
1793  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
1794  {
1795  return this->Value4;
1796  }
1797  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
1798  {
1799  return this->Value4;
1800  }
1801 
1803  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
1804  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
1805  {
1806  return this->Value5;
1807  }
1808  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
1809  {
1810  return this->Value5;
1811  }
1812 
1814  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
1815  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
1816  {
1817  return this->Value6;
1818  }
1819  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
1820  {
1821  return this->Value6;
1822  }
1823 
1825  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
1826  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
1827  {
1828  return this->Value7;
1829  }
1830  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
1831  {
1832  return this->Value7;
1833  }
1834 
1836  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
1837  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
1838  {
1839  return this->Value8;
1840  }
1841  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
1842  {
1843  return this->Value8;
1844  }
1845 
1847  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
1848  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
1849  {
1850  return this->Value9;
1851  }
1852  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
1853  {
1854  return this->Value9;
1855  }
1856 
1857  T10 Value10;
1858  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
1859  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
1860  {
1861  return this->Value10;
1862  }
1863  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
1864  {
1865  return this->Value10;
1866  }
1867 
1868 
1869  // Invalid indices
1870  template <vtkm::IdComponent Index>
1871  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
1872 
1873  template <vtkm::IdComponent, typename>
1874  friend struct detail::TupleElementImpl;
1875 
1876 public:
1877  static constexpr vtkm::IdComponent Size = 11;
1878  template <vtkm::IdComponent Index>
1880 
1881  Tuple() = default;
1882  Tuple(Tuple&&) = default;
1883  Tuple(const Tuple&) = default;
1884  ~Tuple() = default;
1885  Tuple& operator=(Tuple&&) = default;
1886  Tuple& operator=(const Tuple&) = default;
1887 
1889  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10>
1890  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10)
1891  : Value0(std::forward<A0>(a0))
1892  , Value1(std::forward<A1>(a1))
1893  , Value2(std::forward<A2>(a2))
1894  , Value3(std::forward<A3>(a3))
1895  , Value4(std::forward<A4>(a4))
1896  , Value5(std::forward<A5>(a5))
1897  , Value6(std::forward<A6>(a6))
1898  , Value7(std::forward<A7>(a7))
1899  , Value8(std::forward<A8>(a8))
1900  , Value9(std::forward<A9>(a9))
1901  , Value10(std::forward<A10>(a10))
1902  {
1903  }
1904 
1905  template <vtkm::IdComponent Index>
1906  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1907  {
1908  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1909  }
1910 
1911  template <vtkm::IdComponent Index>
1912  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
1913  {
1914  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
1915  }
1916 
1918  template <typename Function, typename... Args>
1920  auto Apply(Function&& f, Args&&... args)
1921  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10))
1922  {
1923  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10);
1924  }
1926  template <typename Function, typename... Args>
1928  auto Apply(Function&& f, Args&&... args) const
1929  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10))
1930  {
1931  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10);
1932  }
1933 
1935  template <typename Function>
1936  VTKM_EXEC_CONT void ForEach(Function&& f)
1937  {
1938  detail::TupleForEach(*this, std::forward<Function>(f));
1939  }
1941  template <typename Function>
1942  VTKM_EXEC_CONT void ForEach(Function&& f) const
1943  {
1944  detail::TupleForEach(*this, std::forward<Function>(f));
1945  }
1946 
1948  template <typename Function>
1949  VTKM_EXEC_CONT auto Transform(Function&& f)
1950  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1951  {
1952  return detail::TupleTransform(*this, std::forward<Function>(f));
1953  }
1955  template <typename Function>
1956  VTKM_EXEC_CONT auto Transform(Function&& f) const
1957  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
1958  {
1959  return detail::TupleTransform(*this, std::forward<Function>(f));
1960  }
1961 };
1962 
1963 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11>
1964 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11>
1965 {
1967  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
1968  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
1969  {
1970  return this->Value0;
1971  }
1972  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
1973  {
1974  return this->Value0;
1975  }
1976 
1978  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
1979  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
1980  {
1981  return this->Value1;
1982  }
1983  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
1984  {
1985  return this->Value1;
1986  }
1987 
1989  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
1990  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
1991  {
1992  return this->Value2;
1993  }
1994  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
1995  {
1996  return this->Value2;
1997  }
1998 
2000  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
2001  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
2002  {
2003  return this->Value3;
2004  }
2005  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
2006  {
2007  return this->Value3;
2008  }
2009 
2011  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
2012  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
2013  {
2014  return this->Value4;
2015  }
2016  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
2017  {
2018  return this->Value4;
2019  }
2020 
2022  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
2023  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
2024  {
2025  return this->Value5;
2026  }
2027  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
2028  {
2029  return this->Value5;
2030  }
2031 
2033  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
2034  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
2035  {
2036  return this->Value6;
2037  }
2038  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
2039  {
2040  return this->Value6;
2041  }
2042 
2044  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
2045  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
2046  {
2047  return this->Value7;
2048  }
2049  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
2050  {
2051  return this->Value7;
2052  }
2053 
2055  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
2056  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
2057  {
2058  return this->Value8;
2059  }
2060  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
2061  {
2062  return this->Value8;
2063  }
2064 
2066  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
2067  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
2068  {
2069  return this->Value9;
2070  }
2071  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
2072  {
2073  return this->Value9;
2074  }
2075 
2076  T10 Value10;
2077  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
2078  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
2079  {
2080  return this->Value10;
2081  }
2082  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
2083  {
2084  return this->Value10;
2085  }
2086 
2087  T11 Value11;
2088  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
2089  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
2090  {
2091  return this->Value11;
2092  }
2093  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
2094  {
2095  return this->Value11;
2096  }
2097 
2098 
2099  // Invalid indices
2100  template <vtkm::IdComponent Index>
2101  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
2102 
2103  template <vtkm::IdComponent, typename>
2104  friend struct detail::TupleElementImpl;
2105 
2106 public:
2107  static constexpr vtkm::IdComponent Size = 12;
2108  template <vtkm::IdComponent Index>
2110 
2111  Tuple() = default;
2112  Tuple(Tuple&&) = default;
2113  Tuple(const Tuple&) = default;
2114  ~Tuple() = default;
2115  Tuple& operator=(Tuple&&) = default;
2116  Tuple& operator=(const Tuple&) = default;
2117 
2119  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11>
2120  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11)
2121  : Value0(std::forward<A0>(a0))
2122  , Value1(std::forward<A1>(a1))
2123  , Value2(std::forward<A2>(a2))
2124  , Value3(std::forward<A3>(a3))
2125  , Value4(std::forward<A4>(a4))
2126  , Value5(std::forward<A5>(a5))
2127  , Value6(std::forward<A6>(a6))
2128  , Value7(std::forward<A7>(a7))
2129  , Value8(std::forward<A8>(a8))
2130  , Value9(std::forward<A9>(a9))
2131  , Value10(std::forward<A10>(a10))
2132  , Value11(std::forward<A11>(a11))
2133  {
2134  }
2135 
2136  template <vtkm::IdComponent Index>
2137  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2138  {
2139  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2140  }
2141 
2142  template <vtkm::IdComponent Index>
2143  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2144  {
2145  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2146  }
2147 
2149  template <typename Function, typename... Args>
2151  auto Apply(Function&& f, Args&&... args)
2152  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11))
2153  {
2154  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11);
2155  }
2157  template <typename Function, typename... Args>
2159  auto Apply(Function&& f, Args&&... args) const
2160  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11))
2161  {
2162  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11);
2163  }
2164 
2166  template <typename Function>
2167  VTKM_EXEC_CONT void ForEach(Function&& f)
2168  {
2169  detail::TupleForEach(*this, std::forward<Function>(f));
2170  }
2172  template <typename Function>
2173  VTKM_EXEC_CONT void ForEach(Function&& f) const
2174  {
2175  detail::TupleForEach(*this, std::forward<Function>(f));
2176  }
2177 
2179  template <typename Function>
2180  VTKM_EXEC_CONT auto Transform(Function&& f)
2181  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2182  {
2183  return detail::TupleTransform(*this, std::forward<Function>(f));
2184  }
2186  template <typename Function>
2187  VTKM_EXEC_CONT auto Transform(Function&& f) const
2188  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2189  {
2190  return detail::TupleTransform(*this, std::forward<Function>(f));
2191  }
2192 };
2193 
2194 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12>
2195 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12>
2196 {
2198  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
2199  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
2200  {
2201  return this->Value0;
2202  }
2203  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
2204  {
2205  return this->Value0;
2206  }
2207 
2209  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
2210  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
2211  {
2212  return this->Value1;
2213  }
2214  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
2215  {
2216  return this->Value1;
2217  }
2218 
2220  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
2221  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
2222  {
2223  return this->Value2;
2224  }
2225  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
2226  {
2227  return this->Value2;
2228  }
2229 
2231  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
2232  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
2233  {
2234  return this->Value3;
2235  }
2236  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
2237  {
2238  return this->Value3;
2239  }
2240 
2242  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
2243  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
2244  {
2245  return this->Value4;
2246  }
2247  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
2248  {
2249  return this->Value4;
2250  }
2251 
2253  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
2254  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
2255  {
2256  return this->Value5;
2257  }
2258  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
2259  {
2260  return this->Value5;
2261  }
2262 
2264  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
2265  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
2266  {
2267  return this->Value6;
2268  }
2269  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
2270  {
2271  return this->Value6;
2272  }
2273 
2275  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
2276  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
2277  {
2278  return this->Value7;
2279  }
2280  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
2281  {
2282  return this->Value7;
2283  }
2284 
2286  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
2287  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
2288  {
2289  return this->Value8;
2290  }
2291  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
2292  {
2293  return this->Value8;
2294  }
2295 
2297  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
2298  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
2299  {
2300  return this->Value9;
2301  }
2302  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
2303  {
2304  return this->Value9;
2305  }
2306 
2307  T10 Value10;
2308  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
2309  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
2310  {
2311  return this->Value10;
2312  }
2313  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
2314  {
2315  return this->Value10;
2316  }
2317 
2318  T11 Value11;
2319  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
2320  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
2321  {
2322  return this->Value11;
2323  }
2324  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
2325  {
2326  return this->Value11;
2327  }
2328 
2329  T12 Value12;
2330  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
2331  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
2332  {
2333  return this->Value12;
2334  }
2335  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
2336  {
2337  return this->Value12;
2338  }
2339 
2340 
2341  // Invalid indices
2342  template <vtkm::IdComponent Index>
2343  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
2344 
2345  template <vtkm::IdComponent, typename>
2346  friend struct detail::TupleElementImpl;
2347 
2348 public:
2349  static constexpr vtkm::IdComponent Size = 13;
2350  template <vtkm::IdComponent Index>
2352 
2353  Tuple() = default;
2354  Tuple(Tuple&&) = default;
2355  Tuple(const Tuple&) = default;
2356  ~Tuple() = default;
2357  Tuple& operator=(Tuple&&) = default;
2358  Tuple& operator=(const Tuple&) = default;
2359 
2361  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12>
2362  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12)
2363  : Value0(std::forward<A0>(a0))
2364  , Value1(std::forward<A1>(a1))
2365  , Value2(std::forward<A2>(a2))
2366  , Value3(std::forward<A3>(a3))
2367  , Value4(std::forward<A4>(a4))
2368  , Value5(std::forward<A5>(a5))
2369  , Value6(std::forward<A6>(a6))
2370  , Value7(std::forward<A7>(a7))
2371  , Value8(std::forward<A8>(a8))
2372  , Value9(std::forward<A9>(a9))
2373  , Value10(std::forward<A10>(a10))
2374  , Value11(std::forward<A11>(a11))
2375  , Value12(std::forward<A12>(a12))
2376  {
2377  }
2378 
2379  template <vtkm::IdComponent Index>
2380  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2381  {
2382  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2383  }
2384 
2385  template <vtkm::IdComponent Index>
2386  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2387  {
2388  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2389  }
2390 
2392  template <typename Function, typename... Args>
2394  auto Apply(Function&& f, Args&&... args)
2395  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12))
2396  {
2397  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12);
2398  }
2400  template <typename Function, typename... Args>
2402  auto Apply(Function&& f, Args&&... args) const
2403  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12))
2404  {
2405  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12);
2406  }
2407 
2409  template <typename Function>
2410  VTKM_EXEC_CONT void ForEach(Function&& f)
2411  {
2412  detail::TupleForEach(*this, std::forward<Function>(f));
2413  }
2415  template <typename Function>
2416  VTKM_EXEC_CONT void ForEach(Function&& f) const
2417  {
2418  detail::TupleForEach(*this, std::forward<Function>(f));
2419  }
2420 
2422  template <typename Function>
2423  VTKM_EXEC_CONT auto Transform(Function&& f)
2424  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2425  {
2426  return detail::TupleTransform(*this, std::forward<Function>(f));
2427  }
2429  template <typename Function>
2430  VTKM_EXEC_CONT auto Transform(Function&& f) const
2431  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2432  {
2433  return detail::TupleTransform(*this, std::forward<Function>(f));
2434  }
2435 };
2436 
2437 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13>
2438 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13>
2439 {
2441  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
2442  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
2443  {
2444  return this->Value0;
2445  }
2446  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
2447  {
2448  return this->Value0;
2449  }
2450 
2452  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
2453  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
2454  {
2455  return this->Value1;
2456  }
2457  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
2458  {
2459  return this->Value1;
2460  }
2461 
2463  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
2464  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
2465  {
2466  return this->Value2;
2467  }
2468  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
2469  {
2470  return this->Value2;
2471  }
2472 
2474  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
2475  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
2476  {
2477  return this->Value3;
2478  }
2479  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
2480  {
2481  return this->Value3;
2482  }
2483 
2485  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
2486  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
2487  {
2488  return this->Value4;
2489  }
2490  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
2491  {
2492  return this->Value4;
2493  }
2494 
2496  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
2497  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
2498  {
2499  return this->Value5;
2500  }
2501  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
2502  {
2503  return this->Value5;
2504  }
2505 
2507  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
2508  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
2509  {
2510  return this->Value6;
2511  }
2512  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
2513  {
2514  return this->Value6;
2515  }
2516 
2518  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
2519  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
2520  {
2521  return this->Value7;
2522  }
2523  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
2524  {
2525  return this->Value7;
2526  }
2527 
2529  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
2530  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
2531  {
2532  return this->Value8;
2533  }
2534  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
2535  {
2536  return this->Value8;
2537  }
2538 
2540  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
2541  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
2542  {
2543  return this->Value9;
2544  }
2545  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
2546  {
2547  return this->Value9;
2548  }
2549 
2550  T10 Value10;
2551  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
2552  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
2553  {
2554  return this->Value10;
2555  }
2556  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
2557  {
2558  return this->Value10;
2559  }
2560 
2561  T11 Value11;
2562  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
2563  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
2564  {
2565  return this->Value11;
2566  }
2567  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
2568  {
2569  return this->Value11;
2570  }
2571 
2572  T12 Value12;
2573  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
2574  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
2575  {
2576  return this->Value12;
2577  }
2578  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
2579  {
2580  return this->Value12;
2581  }
2582 
2583  T13 Value13;
2584  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
2585  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
2586  {
2587  return this->Value13;
2588  }
2589  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
2590  {
2591  return this->Value13;
2592  }
2593 
2594 
2595  // Invalid indices
2596  template <vtkm::IdComponent Index>
2597  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
2598 
2599  template <vtkm::IdComponent, typename>
2600  friend struct detail::TupleElementImpl;
2601 
2602 public:
2603  static constexpr vtkm::IdComponent Size = 14;
2604  template <vtkm::IdComponent Index>
2606 
2607  Tuple() = default;
2608  Tuple(Tuple&&) = default;
2609  Tuple(const Tuple&) = default;
2610  ~Tuple() = default;
2611  Tuple& operator=(Tuple&&) = default;
2612  Tuple& operator=(const Tuple&) = default;
2613 
2615  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13>
2616  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13)
2617  : Value0(std::forward<A0>(a0))
2618  , Value1(std::forward<A1>(a1))
2619  , Value2(std::forward<A2>(a2))
2620  , Value3(std::forward<A3>(a3))
2621  , Value4(std::forward<A4>(a4))
2622  , Value5(std::forward<A5>(a5))
2623  , Value6(std::forward<A6>(a6))
2624  , Value7(std::forward<A7>(a7))
2625  , Value8(std::forward<A8>(a8))
2626  , Value9(std::forward<A9>(a9))
2627  , Value10(std::forward<A10>(a10))
2628  , Value11(std::forward<A11>(a11))
2629  , Value12(std::forward<A12>(a12))
2630  , Value13(std::forward<A13>(a13))
2631  {
2632  }
2633 
2634  template <vtkm::IdComponent Index>
2635  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2636  {
2637  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2638  }
2639 
2640  template <vtkm::IdComponent Index>
2641  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2642  {
2643  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2644  }
2645 
2647  template <typename Function, typename... Args>
2649  auto Apply(Function&& f, Args&&... args)
2650  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13))
2651  {
2652  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13);
2653  }
2655  template <typename Function, typename... Args>
2657  auto Apply(Function&& f, Args&&... args) const
2658  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13))
2659  {
2660  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13);
2661  }
2662 
2664  template <typename Function>
2665  VTKM_EXEC_CONT void ForEach(Function&& f)
2666  {
2667  detail::TupleForEach(*this, std::forward<Function>(f));
2668  }
2670  template <typename Function>
2671  VTKM_EXEC_CONT void ForEach(Function&& f) const
2672  {
2673  detail::TupleForEach(*this, std::forward<Function>(f));
2674  }
2675 
2677  template <typename Function>
2678  VTKM_EXEC_CONT auto Transform(Function&& f)
2679  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2680  {
2681  return detail::TupleTransform(*this, std::forward<Function>(f));
2682  }
2684  template <typename Function>
2685  VTKM_EXEC_CONT auto Transform(Function&& f) const
2686  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2687  {
2688  return detail::TupleTransform(*this, std::forward<Function>(f));
2689  }
2690 };
2691 
2692 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14>
2693 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14>
2694 {
2696  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
2697  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
2698  {
2699  return this->Value0;
2700  }
2701  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
2702  {
2703  return this->Value0;
2704  }
2705 
2707  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
2708  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
2709  {
2710  return this->Value1;
2711  }
2712  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
2713  {
2714  return this->Value1;
2715  }
2716 
2718  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
2719  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
2720  {
2721  return this->Value2;
2722  }
2723  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
2724  {
2725  return this->Value2;
2726  }
2727 
2729  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
2730  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
2731  {
2732  return this->Value3;
2733  }
2734  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
2735  {
2736  return this->Value3;
2737  }
2738 
2740  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
2741  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
2742  {
2743  return this->Value4;
2744  }
2745  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
2746  {
2747  return this->Value4;
2748  }
2749 
2751  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
2752  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
2753  {
2754  return this->Value5;
2755  }
2756  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
2757  {
2758  return this->Value5;
2759  }
2760 
2762  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
2763  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
2764  {
2765  return this->Value6;
2766  }
2767  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
2768  {
2769  return this->Value6;
2770  }
2771 
2773  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
2774  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
2775  {
2776  return this->Value7;
2777  }
2778  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
2779  {
2780  return this->Value7;
2781  }
2782 
2784  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
2785  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
2786  {
2787  return this->Value8;
2788  }
2789  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
2790  {
2791  return this->Value8;
2792  }
2793 
2795  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
2796  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
2797  {
2798  return this->Value9;
2799  }
2800  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
2801  {
2802  return this->Value9;
2803  }
2804 
2805  T10 Value10;
2806  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
2807  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
2808  {
2809  return this->Value10;
2810  }
2811  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
2812  {
2813  return this->Value10;
2814  }
2815 
2816  T11 Value11;
2817  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
2818  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
2819  {
2820  return this->Value11;
2821  }
2822  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
2823  {
2824  return this->Value11;
2825  }
2826 
2827  T12 Value12;
2828  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
2829  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
2830  {
2831  return this->Value12;
2832  }
2833  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
2834  {
2835  return this->Value12;
2836  }
2837 
2838  T13 Value13;
2839  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
2840  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
2841  {
2842  return this->Value13;
2843  }
2844  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
2845  {
2846  return this->Value13;
2847  }
2848 
2849  T14 Value14;
2850  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
2851  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
2852  {
2853  return this->Value14;
2854  }
2855  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
2856  {
2857  return this->Value14;
2858  }
2859 
2860 
2861  // Invalid indices
2862  template <vtkm::IdComponent Index>
2863  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
2864 
2865  template <vtkm::IdComponent, typename>
2866  friend struct detail::TupleElementImpl;
2867 
2868 public:
2869  static constexpr vtkm::IdComponent Size = 15;
2870  template <vtkm::IdComponent Index>
2872 
2873  Tuple() = default;
2874  Tuple(Tuple&&) = default;
2875  Tuple(const Tuple&) = default;
2876  ~Tuple() = default;
2877  Tuple& operator=(Tuple&&) = default;
2878  Tuple& operator=(const Tuple&) = default;
2879 
2881  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14>
2882  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14)
2883  : Value0(std::forward<A0>(a0))
2884  , Value1(std::forward<A1>(a1))
2885  , Value2(std::forward<A2>(a2))
2886  , Value3(std::forward<A3>(a3))
2887  , Value4(std::forward<A4>(a4))
2888  , Value5(std::forward<A5>(a5))
2889  , Value6(std::forward<A6>(a6))
2890  , Value7(std::forward<A7>(a7))
2891  , Value8(std::forward<A8>(a8))
2892  , Value9(std::forward<A9>(a9))
2893  , Value10(std::forward<A10>(a10))
2894  , Value11(std::forward<A11>(a11))
2895  , Value12(std::forward<A12>(a12))
2896  , Value13(std::forward<A13>(a13))
2897  , Value14(std::forward<A14>(a14))
2898  {
2899  }
2900 
2901  template <vtkm::IdComponent Index>
2902  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2903  {
2904  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2905  }
2906 
2907  template <vtkm::IdComponent Index>
2908  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
2909  {
2910  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
2911  }
2912 
2914  template <typename Function, typename... Args>
2916  auto Apply(Function&& f, Args&&... args)
2917  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14))
2918  {
2919  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14);
2920  }
2922  template <typename Function, typename... Args>
2924  auto Apply(Function&& f, Args&&... args) const
2925  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14))
2926  {
2927  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14);
2928  }
2929 
2931  template <typename Function>
2932  VTKM_EXEC_CONT void ForEach(Function&& f)
2933  {
2934  detail::TupleForEach(*this, std::forward<Function>(f));
2935  }
2937  template <typename Function>
2938  VTKM_EXEC_CONT void ForEach(Function&& f) const
2939  {
2940  detail::TupleForEach(*this, std::forward<Function>(f));
2941  }
2942 
2944  template <typename Function>
2945  VTKM_EXEC_CONT auto Transform(Function&& f)
2946  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2947  {
2948  return detail::TupleTransform(*this, std::forward<Function>(f));
2949  }
2951  template <typename Function>
2952  VTKM_EXEC_CONT auto Transform(Function&& f) const
2953  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
2954  {
2955  return detail::TupleTransform(*this, std::forward<Function>(f));
2956  }
2957 };
2958 
2959 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15>
2960 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15>
2961 {
2963  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
2964  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
2965  {
2966  return this->Value0;
2967  }
2968  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
2969  {
2970  return this->Value0;
2971  }
2972 
2974  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
2975  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
2976  {
2977  return this->Value1;
2978  }
2979  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
2980  {
2981  return this->Value1;
2982  }
2983 
2985  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
2986  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
2987  {
2988  return this->Value2;
2989  }
2990  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
2991  {
2992  return this->Value2;
2993  }
2994 
2996  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
2997  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
2998  {
2999  return this->Value3;
3000  }
3001  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
3002  {
3003  return this->Value3;
3004  }
3005 
3007  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
3008  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
3009  {
3010  return this->Value4;
3011  }
3012  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
3013  {
3014  return this->Value4;
3015  }
3016 
3018  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
3019  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
3020  {
3021  return this->Value5;
3022  }
3023  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
3024  {
3025  return this->Value5;
3026  }
3027 
3029  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
3030  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
3031  {
3032  return this->Value6;
3033  }
3034  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
3035  {
3036  return this->Value6;
3037  }
3038 
3040  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
3041  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
3042  {
3043  return this->Value7;
3044  }
3045  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
3046  {
3047  return this->Value7;
3048  }
3049 
3051  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
3052  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
3053  {
3054  return this->Value8;
3055  }
3056  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
3057  {
3058  return this->Value8;
3059  }
3060 
3062  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
3063  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
3064  {
3065  return this->Value9;
3066  }
3067  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
3068  {
3069  return this->Value9;
3070  }
3071 
3072  T10 Value10;
3073  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
3074  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
3075  {
3076  return this->Value10;
3077  }
3078  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
3079  {
3080  return this->Value10;
3081  }
3082 
3083  T11 Value11;
3084  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
3085  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
3086  {
3087  return this->Value11;
3088  }
3089  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
3090  {
3091  return this->Value11;
3092  }
3093 
3094  T12 Value12;
3095  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
3096  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
3097  {
3098  return this->Value12;
3099  }
3100  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
3101  {
3102  return this->Value12;
3103  }
3104 
3105  T13 Value13;
3106  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
3107  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
3108  {
3109  return this->Value13;
3110  }
3111  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
3112  {
3113  return this->Value13;
3114  }
3115 
3116  T14 Value14;
3117  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
3118  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
3119  {
3120  return this->Value14;
3121  }
3122  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
3123  {
3124  return this->Value14;
3125  }
3126 
3127  T15 Value15;
3128  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
3129  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
3130  {
3131  return this->Value15;
3132  }
3133  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
3134  {
3135  return this->Value15;
3136  }
3137 
3138 
3139  // Invalid indices
3140  template <vtkm::IdComponent Index>
3141  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
3142 
3143  template <vtkm::IdComponent, typename>
3144  friend struct detail::TupleElementImpl;
3145 
3146 public:
3147  static constexpr vtkm::IdComponent Size = 16;
3148  template <vtkm::IdComponent Index>
3150 
3151  Tuple() = default;
3152  Tuple(Tuple&&) = default;
3153  Tuple(const Tuple&) = default;
3154  ~Tuple() = default;
3155  Tuple& operator=(Tuple&&) = default;
3156  Tuple& operator=(const Tuple&) = default;
3157 
3159  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15>
3160  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15)
3161  : Value0(std::forward<A0>(a0))
3162  , Value1(std::forward<A1>(a1))
3163  , Value2(std::forward<A2>(a2))
3164  , Value3(std::forward<A3>(a3))
3165  , Value4(std::forward<A4>(a4))
3166  , Value5(std::forward<A5>(a5))
3167  , Value6(std::forward<A6>(a6))
3168  , Value7(std::forward<A7>(a7))
3169  , Value8(std::forward<A8>(a8))
3170  , Value9(std::forward<A9>(a9))
3171  , Value10(std::forward<A10>(a10))
3172  , Value11(std::forward<A11>(a11))
3173  , Value12(std::forward<A12>(a12))
3174  , Value13(std::forward<A13>(a13))
3175  , Value14(std::forward<A14>(a14))
3176  , Value15(std::forward<A15>(a15))
3177  {
3178  }
3179 
3180  template <vtkm::IdComponent Index>
3181  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3182  {
3183  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3184  }
3185 
3186  template <vtkm::IdComponent Index>
3187  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3188  {
3189  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3190  }
3191 
3193  template <typename Function, typename... Args>
3195  auto Apply(Function&& f, Args&&... args)
3196  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15))
3197  {
3198  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15);
3199  }
3201  template <typename Function, typename... Args>
3203  auto Apply(Function&& f, Args&&... args) const
3204  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15))
3205  {
3206  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15);
3207  }
3208 
3210  template <typename Function>
3211  VTKM_EXEC_CONT void ForEach(Function&& f)
3212  {
3213  detail::TupleForEach(*this, std::forward<Function>(f));
3214  }
3216  template <typename Function>
3217  VTKM_EXEC_CONT void ForEach(Function&& f) const
3218  {
3219  detail::TupleForEach(*this, std::forward<Function>(f));
3220  }
3221 
3223  template <typename Function>
3224  VTKM_EXEC_CONT auto Transform(Function&& f)
3225  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3226  {
3227  return detail::TupleTransform(*this, std::forward<Function>(f));
3228  }
3230  template <typename Function>
3231  VTKM_EXEC_CONT auto Transform(Function&& f) const
3232  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3233  {
3234  return detail::TupleTransform(*this, std::forward<Function>(f));
3235  }
3236 };
3237 
3238 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16>
3239 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16>
3240 {
3242  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
3243  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
3244  {
3245  return this->Value0;
3246  }
3247  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
3248  {
3249  return this->Value0;
3250  }
3251 
3253  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
3254  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
3255  {
3256  return this->Value1;
3257  }
3258  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
3259  {
3260  return this->Value1;
3261  }
3262 
3264  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
3265  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
3266  {
3267  return this->Value2;
3268  }
3269  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
3270  {
3271  return this->Value2;
3272  }
3273 
3275  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
3276  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
3277  {
3278  return this->Value3;
3279  }
3280  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
3281  {
3282  return this->Value3;
3283  }
3284 
3286  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
3287  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
3288  {
3289  return this->Value4;
3290  }
3291  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
3292  {
3293  return this->Value4;
3294  }
3295 
3297  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
3298  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
3299  {
3300  return this->Value5;
3301  }
3302  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
3303  {
3304  return this->Value5;
3305  }
3306 
3308  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
3309  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
3310  {
3311  return this->Value6;
3312  }
3313  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
3314  {
3315  return this->Value6;
3316  }
3317 
3319  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
3320  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
3321  {
3322  return this->Value7;
3323  }
3324  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
3325  {
3326  return this->Value7;
3327  }
3328 
3330  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
3331  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
3332  {
3333  return this->Value8;
3334  }
3335  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
3336  {
3337  return this->Value8;
3338  }
3339 
3341  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
3342  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
3343  {
3344  return this->Value9;
3345  }
3346  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
3347  {
3348  return this->Value9;
3349  }
3350 
3351  T10 Value10;
3352  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
3353  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
3354  {
3355  return this->Value10;
3356  }
3357  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
3358  {
3359  return this->Value10;
3360  }
3361 
3362  T11 Value11;
3363  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
3364  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
3365  {
3366  return this->Value11;
3367  }
3368  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
3369  {
3370  return this->Value11;
3371  }
3372 
3373  T12 Value12;
3374  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
3375  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
3376  {
3377  return this->Value12;
3378  }
3379  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
3380  {
3381  return this->Value12;
3382  }
3383 
3384  T13 Value13;
3385  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
3386  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
3387  {
3388  return this->Value13;
3389  }
3390  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
3391  {
3392  return this->Value13;
3393  }
3394 
3395  T14 Value14;
3396  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
3397  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
3398  {
3399  return this->Value14;
3400  }
3401  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
3402  {
3403  return this->Value14;
3404  }
3405 
3406  T15 Value15;
3407  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
3408  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
3409  {
3410  return this->Value15;
3411  }
3412  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
3413  {
3414  return this->Value15;
3415  }
3416 
3417  T16 Value16;
3418  static T16 ElementTypeI(vtkm::internal::IndexTag<16>);
3419  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>)
3420  {
3421  return this->Value16;
3422  }
3423  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>) const
3424  {
3425  return this->Value16;
3426  }
3427 
3428 
3429  // Invalid indices
3430  template <vtkm::IdComponent Index>
3431  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
3432 
3433  template <vtkm::IdComponent, typename>
3434  friend struct detail::TupleElementImpl;
3435 
3436 public:
3437  static constexpr vtkm::IdComponent Size = 17;
3438  template <vtkm::IdComponent Index>
3440 
3441  Tuple() = default;
3442  Tuple(Tuple&&) = default;
3443  Tuple(const Tuple&) = default;
3444  ~Tuple() = default;
3445  Tuple& operator=(Tuple&&) = default;
3446  Tuple& operator=(const Tuple&) = default;
3447 
3449  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16>
3450  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15, A16&& a16)
3451  : Value0(std::forward<A0>(a0))
3452  , Value1(std::forward<A1>(a1))
3453  , Value2(std::forward<A2>(a2))
3454  , Value3(std::forward<A3>(a3))
3455  , Value4(std::forward<A4>(a4))
3456  , Value5(std::forward<A5>(a5))
3457  , Value6(std::forward<A6>(a6))
3458  , Value7(std::forward<A7>(a7))
3459  , Value8(std::forward<A8>(a8))
3460  , Value9(std::forward<A9>(a9))
3461  , Value10(std::forward<A10>(a10))
3462  , Value11(std::forward<A11>(a11))
3463  , Value12(std::forward<A12>(a12))
3464  , Value13(std::forward<A13>(a13))
3465  , Value14(std::forward<A14>(a14))
3466  , Value15(std::forward<A15>(a15))
3467  , Value16(std::forward<A16>(a16))
3468  {
3469  }
3470 
3471  template <vtkm::IdComponent Index>
3472  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3473  {
3474  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3475  }
3476 
3477  template <vtkm::IdComponent Index>
3478  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3479  {
3480  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3481  }
3482 
3484  template <typename Function, typename... Args>
3486  auto Apply(Function&& f, Args&&... args)
3487  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16))
3488  {
3489  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16);
3490  }
3492  template <typename Function, typename... Args>
3494  auto Apply(Function&& f, Args&&... args) const
3495  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16))
3496  {
3497  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16);
3498  }
3499 
3501  template <typename Function>
3502  VTKM_EXEC_CONT void ForEach(Function&& f)
3503  {
3504  detail::TupleForEach(*this, std::forward<Function>(f));
3505  }
3507  template <typename Function>
3508  VTKM_EXEC_CONT void ForEach(Function&& f) const
3509  {
3510  detail::TupleForEach(*this, std::forward<Function>(f));
3511  }
3512 
3514  template <typename Function>
3515  VTKM_EXEC_CONT auto Transform(Function&& f)
3516  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3517  {
3518  return detail::TupleTransform(*this, std::forward<Function>(f));
3519  }
3521  template <typename Function>
3522  VTKM_EXEC_CONT auto Transform(Function&& f) const
3523  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3524  {
3525  return detail::TupleTransform(*this, std::forward<Function>(f));
3526  }
3527 };
3528 
3529 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17>
3530 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17>
3531 {
3533  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
3534  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
3535  {
3536  return this->Value0;
3537  }
3538  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
3539  {
3540  return this->Value0;
3541  }
3542 
3544  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
3545  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
3546  {
3547  return this->Value1;
3548  }
3549  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
3550  {
3551  return this->Value1;
3552  }
3553 
3555  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
3556  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
3557  {
3558  return this->Value2;
3559  }
3560  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
3561  {
3562  return this->Value2;
3563  }
3564 
3566  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
3567  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
3568  {
3569  return this->Value3;
3570  }
3571  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
3572  {
3573  return this->Value3;
3574  }
3575 
3577  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
3578  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
3579  {
3580  return this->Value4;
3581  }
3582  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
3583  {
3584  return this->Value4;
3585  }
3586 
3588  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
3589  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
3590  {
3591  return this->Value5;
3592  }
3593  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
3594  {
3595  return this->Value5;
3596  }
3597 
3599  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
3600  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
3601  {
3602  return this->Value6;
3603  }
3604  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
3605  {
3606  return this->Value6;
3607  }
3608 
3610  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
3611  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
3612  {
3613  return this->Value7;
3614  }
3615  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
3616  {
3617  return this->Value7;
3618  }
3619 
3621  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
3622  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
3623  {
3624  return this->Value8;
3625  }
3626  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
3627  {
3628  return this->Value8;
3629  }
3630 
3632  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
3633  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
3634  {
3635  return this->Value9;
3636  }
3637  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
3638  {
3639  return this->Value9;
3640  }
3641 
3642  T10 Value10;
3643  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
3644  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
3645  {
3646  return this->Value10;
3647  }
3648  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
3649  {
3650  return this->Value10;
3651  }
3652 
3653  T11 Value11;
3654  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
3655  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
3656  {
3657  return this->Value11;
3658  }
3659  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
3660  {
3661  return this->Value11;
3662  }
3663 
3664  T12 Value12;
3665  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
3666  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
3667  {
3668  return this->Value12;
3669  }
3670  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
3671  {
3672  return this->Value12;
3673  }
3674 
3675  T13 Value13;
3676  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
3677  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
3678  {
3679  return this->Value13;
3680  }
3681  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
3682  {
3683  return this->Value13;
3684  }
3685 
3686  T14 Value14;
3687  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
3688  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
3689  {
3690  return this->Value14;
3691  }
3692  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
3693  {
3694  return this->Value14;
3695  }
3696 
3697  T15 Value15;
3698  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
3699  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
3700  {
3701  return this->Value15;
3702  }
3703  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
3704  {
3705  return this->Value15;
3706  }
3707 
3708  T16 Value16;
3709  static T16 ElementTypeI(vtkm::internal::IndexTag<16>);
3710  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>)
3711  {
3712  return this->Value16;
3713  }
3714  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>) const
3715  {
3716  return this->Value16;
3717  }
3718 
3719  T17 Value17;
3720  static T17 ElementTypeI(vtkm::internal::IndexTag<17>);
3721  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>)
3722  {
3723  return this->Value17;
3724  }
3725  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>) const
3726  {
3727  return this->Value17;
3728  }
3729 
3730 
3731  // Invalid indices
3732  template <vtkm::IdComponent Index>
3733  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
3734 
3735  template <vtkm::IdComponent, typename>
3736  friend struct detail::TupleElementImpl;
3737 
3738 public:
3739  static constexpr vtkm::IdComponent Size = 18;
3740  template <vtkm::IdComponent Index>
3742 
3743  Tuple() = default;
3744  Tuple(Tuple&&) = default;
3745  Tuple(const Tuple&) = default;
3746  ~Tuple() = default;
3747  Tuple& operator=(Tuple&&) = default;
3748  Tuple& operator=(const Tuple&) = default;
3749 
3751  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17>
3752  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15, A16&& a16, A17&& a17)
3753  : Value0(std::forward<A0>(a0))
3754  , Value1(std::forward<A1>(a1))
3755  , Value2(std::forward<A2>(a2))
3756  , Value3(std::forward<A3>(a3))
3757  , Value4(std::forward<A4>(a4))
3758  , Value5(std::forward<A5>(a5))
3759  , Value6(std::forward<A6>(a6))
3760  , Value7(std::forward<A7>(a7))
3761  , Value8(std::forward<A8>(a8))
3762  , Value9(std::forward<A9>(a9))
3763  , Value10(std::forward<A10>(a10))
3764  , Value11(std::forward<A11>(a11))
3765  , Value12(std::forward<A12>(a12))
3766  , Value13(std::forward<A13>(a13))
3767  , Value14(std::forward<A14>(a14))
3768  , Value15(std::forward<A15>(a15))
3769  , Value16(std::forward<A16>(a16))
3770  , Value17(std::forward<A17>(a17))
3771  {
3772  }
3773 
3774  template <vtkm::IdComponent Index>
3775  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3776  {
3777  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3778  }
3779 
3780  template <vtkm::IdComponent Index>
3781  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
3782  {
3783  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
3784  }
3785 
3787  template <typename Function, typename... Args>
3789  auto Apply(Function&& f, Args&&... args)
3790  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17))
3791  {
3792  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17);
3793  }
3795  template <typename Function, typename... Args>
3797  auto Apply(Function&& f, Args&&... args) const
3798  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17))
3799  {
3800  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17);
3801  }
3802 
3804  template <typename Function>
3805  VTKM_EXEC_CONT void ForEach(Function&& f)
3806  {
3807  detail::TupleForEach(*this, std::forward<Function>(f));
3808  }
3810  template <typename Function>
3811  VTKM_EXEC_CONT void ForEach(Function&& f) const
3812  {
3813  detail::TupleForEach(*this, std::forward<Function>(f));
3814  }
3815 
3817  template <typename Function>
3818  VTKM_EXEC_CONT auto Transform(Function&& f)
3819  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3820  {
3821  return detail::TupleTransform(*this, std::forward<Function>(f));
3822  }
3824  template <typename Function>
3825  VTKM_EXEC_CONT auto Transform(Function&& f) const
3826  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
3827  {
3828  return detail::TupleTransform(*this, std::forward<Function>(f));
3829  }
3830 };
3831 
3832 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18>
3833 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18>
3834 {
3836  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
3837  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
3838  {
3839  return this->Value0;
3840  }
3841  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
3842  {
3843  return this->Value0;
3844  }
3845 
3847  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
3848  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
3849  {
3850  return this->Value1;
3851  }
3852  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
3853  {
3854  return this->Value1;
3855  }
3856 
3858  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
3859  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
3860  {
3861  return this->Value2;
3862  }
3863  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
3864  {
3865  return this->Value2;
3866  }
3867 
3869  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
3870  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
3871  {
3872  return this->Value3;
3873  }
3874  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
3875  {
3876  return this->Value3;
3877  }
3878 
3880  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
3881  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
3882  {
3883  return this->Value4;
3884  }
3885  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
3886  {
3887  return this->Value4;
3888  }
3889 
3891  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
3892  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
3893  {
3894  return this->Value5;
3895  }
3896  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
3897  {
3898  return this->Value5;
3899  }
3900 
3902  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
3903  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
3904  {
3905  return this->Value6;
3906  }
3907  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
3908  {
3909  return this->Value6;
3910  }
3911 
3913  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
3914  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
3915  {
3916  return this->Value7;
3917  }
3918  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
3919  {
3920  return this->Value7;
3921  }
3922 
3924  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
3925  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
3926  {
3927  return this->Value8;
3928  }
3929  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
3930  {
3931  return this->Value8;
3932  }
3933 
3935  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
3936  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
3937  {
3938  return this->Value9;
3939  }
3940  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
3941  {
3942  return this->Value9;
3943  }
3944 
3945  T10 Value10;
3946  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
3947  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
3948  {
3949  return this->Value10;
3950  }
3951  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
3952  {
3953  return this->Value10;
3954  }
3955 
3956  T11 Value11;
3957  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
3958  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
3959  {
3960  return this->Value11;
3961  }
3962  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
3963  {
3964  return this->Value11;
3965  }
3966 
3967  T12 Value12;
3968  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
3969  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
3970  {
3971  return this->Value12;
3972  }
3973  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
3974  {
3975  return this->Value12;
3976  }
3977 
3978  T13 Value13;
3979  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
3980  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
3981  {
3982  return this->Value13;
3983  }
3984  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
3985  {
3986  return this->Value13;
3987  }
3988 
3989  T14 Value14;
3990  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
3991  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
3992  {
3993  return this->Value14;
3994  }
3995  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
3996  {
3997  return this->Value14;
3998  }
3999 
4000  T15 Value15;
4001  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
4002  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
4003  {
4004  return this->Value15;
4005  }
4006  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
4007  {
4008  return this->Value15;
4009  }
4010 
4011  T16 Value16;
4012  static T16 ElementTypeI(vtkm::internal::IndexTag<16>);
4013  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>)
4014  {
4015  return this->Value16;
4016  }
4017  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>) const
4018  {
4019  return this->Value16;
4020  }
4021 
4022  T17 Value17;
4023  static T17 ElementTypeI(vtkm::internal::IndexTag<17>);
4024  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>)
4025  {
4026  return this->Value17;
4027  }
4028  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>) const
4029  {
4030  return this->Value17;
4031  }
4032 
4033  T18 Value18;
4034  static T18 ElementTypeI(vtkm::internal::IndexTag<18>);
4035  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>)
4036  {
4037  return this->Value18;
4038  }
4039  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>) const
4040  {
4041  return this->Value18;
4042  }
4043 
4044 
4045  // Invalid indices
4046  template <vtkm::IdComponent Index>
4047  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
4048 
4049  template <vtkm::IdComponent, typename>
4050  friend struct detail::TupleElementImpl;
4051 
4052 public:
4053  static constexpr vtkm::IdComponent Size = 19;
4054  template <vtkm::IdComponent Index>
4056 
4057  Tuple() = default;
4058  Tuple(Tuple&&) = default;
4059  Tuple(const Tuple&) = default;
4060  ~Tuple() = default;
4061  Tuple& operator=(Tuple&&) = default;
4062  Tuple& operator=(const Tuple&) = default;
4063 
4065  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18>
4066  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15, A16&& a16, A17&& a17, A18&& a18)
4067  : Value0(std::forward<A0>(a0))
4068  , Value1(std::forward<A1>(a1))
4069  , Value2(std::forward<A2>(a2))
4070  , Value3(std::forward<A3>(a3))
4071  , Value4(std::forward<A4>(a4))
4072  , Value5(std::forward<A5>(a5))
4073  , Value6(std::forward<A6>(a6))
4074  , Value7(std::forward<A7>(a7))
4075  , Value8(std::forward<A8>(a8))
4076  , Value9(std::forward<A9>(a9))
4077  , Value10(std::forward<A10>(a10))
4078  , Value11(std::forward<A11>(a11))
4079  , Value12(std::forward<A12>(a12))
4080  , Value13(std::forward<A13>(a13))
4081  , Value14(std::forward<A14>(a14))
4082  , Value15(std::forward<A15>(a15))
4083  , Value16(std::forward<A16>(a16))
4084  , Value17(std::forward<A17>(a17))
4085  , Value18(std::forward<A18>(a18))
4086  {
4087  }
4088 
4089  template <vtkm::IdComponent Index>
4090  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4091  {
4092  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4093  }
4094 
4095  template <vtkm::IdComponent Index>
4096  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4097  {
4098  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4099  }
4100 
4102  template <typename Function, typename... Args>
4104  auto Apply(Function&& f, Args&&... args)
4105  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18))
4106  {
4107  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18);
4108  }
4110  template <typename Function, typename... Args>
4112  auto Apply(Function&& f, Args&&... args) const
4113  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18))
4114  {
4115  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18);
4116  }
4117 
4119  template <typename Function>
4120  VTKM_EXEC_CONT void ForEach(Function&& f)
4121  {
4122  detail::TupleForEach(*this, std::forward<Function>(f));
4123  }
4125  template <typename Function>
4126  VTKM_EXEC_CONT void ForEach(Function&& f) const
4127  {
4128  detail::TupleForEach(*this, std::forward<Function>(f));
4129  }
4130 
4132  template <typename Function>
4133  VTKM_EXEC_CONT auto Transform(Function&& f)
4134  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4135  {
4136  return detail::TupleTransform(*this, std::forward<Function>(f));
4137  }
4139  template <typename Function>
4140  VTKM_EXEC_CONT auto Transform(Function&& f) const
4141  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4142  {
4143  return detail::TupleTransform(*this, std::forward<Function>(f));
4144  }
4145 };
4146 
4147 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19>
4148 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19>
4149 {
4151  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
4152  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
4153  {
4154  return this->Value0;
4155  }
4156  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
4157  {
4158  return this->Value0;
4159  }
4160 
4162  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
4163  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
4164  {
4165  return this->Value1;
4166  }
4167  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
4168  {
4169  return this->Value1;
4170  }
4171 
4173  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
4174  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
4175  {
4176  return this->Value2;
4177  }
4178  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
4179  {
4180  return this->Value2;
4181  }
4182 
4184  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
4185  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
4186  {
4187  return this->Value3;
4188  }
4189  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
4190  {
4191  return this->Value3;
4192  }
4193 
4195  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
4196  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
4197  {
4198  return this->Value4;
4199  }
4200  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
4201  {
4202  return this->Value4;
4203  }
4204 
4206  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
4207  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
4208  {
4209  return this->Value5;
4210  }
4211  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
4212  {
4213  return this->Value5;
4214  }
4215 
4217  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
4218  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
4219  {
4220  return this->Value6;
4221  }
4222  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
4223  {
4224  return this->Value6;
4225  }
4226 
4228  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
4229  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
4230  {
4231  return this->Value7;
4232  }
4233  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
4234  {
4235  return this->Value7;
4236  }
4237 
4239  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
4240  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
4241  {
4242  return this->Value8;
4243  }
4244  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
4245  {
4246  return this->Value8;
4247  }
4248 
4250  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
4251  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
4252  {
4253  return this->Value9;
4254  }
4255  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
4256  {
4257  return this->Value9;
4258  }
4259 
4260  T10 Value10;
4261  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
4262  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
4263  {
4264  return this->Value10;
4265  }
4266  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
4267  {
4268  return this->Value10;
4269  }
4270 
4271  T11 Value11;
4272  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
4273  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
4274  {
4275  return this->Value11;
4276  }
4277  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
4278  {
4279  return this->Value11;
4280  }
4281 
4282  T12 Value12;
4283  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
4284  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
4285  {
4286  return this->Value12;
4287  }
4288  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
4289  {
4290  return this->Value12;
4291  }
4292 
4293  T13 Value13;
4294  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
4295  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
4296  {
4297  return this->Value13;
4298  }
4299  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
4300  {
4301  return this->Value13;
4302  }
4303 
4304  T14 Value14;
4305  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
4306  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
4307  {
4308  return this->Value14;
4309  }
4310  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
4311  {
4312  return this->Value14;
4313  }
4314 
4315  T15 Value15;
4316  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
4317  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
4318  {
4319  return this->Value15;
4320  }
4321  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
4322  {
4323  return this->Value15;
4324  }
4325 
4326  T16 Value16;
4327  static T16 ElementTypeI(vtkm::internal::IndexTag<16>);
4328  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>)
4329  {
4330  return this->Value16;
4331  }
4332  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>) const
4333  {
4334  return this->Value16;
4335  }
4336 
4337  T17 Value17;
4338  static T17 ElementTypeI(vtkm::internal::IndexTag<17>);
4339  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>)
4340  {
4341  return this->Value17;
4342  }
4343  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>) const
4344  {
4345  return this->Value17;
4346  }
4347 
4348  T18 Value18;
4349  static T18 ElementTypeI(vtkm::internal::IndexTag<18>);
4350  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>)
4351  {
4352  return this->Value18;
4353  }
4354  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>) const
4355  {
4356  return this->Value18;
4357  }
4358 
4359  T19 Value19;
4360  static T19 ElementTypeI(vtkm::internal::IndexTag<19>);
4361  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T19>& GetImpl(vtkm::internal::IndexTag<19>)
4362  {
4363  return this->Value19;
4364  }
4365  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T19>& GetImpl(vtkm::internal::IndexTag<19>) const
4366  {
4367  return this->Value19;
4368  }
4369 
4370 
4371  // Invalid indices
4372  template <vtkm::IdComponent Index>
4373  static vtkm::internal::NullType ElementTypeI(vtkm::internal::IndexTag<Index>);
4374 
4375  template <vtkm::IdComponent, typename>
4376  friend struct detail::TupleElementImpl;
4377 
4378 public:
4379  static constexpr vtkm::IdComponent Size = 20;
4380  template <vtkm::IdComponent Index>
4382 
4383  Tuple() = default;
4384  Tuple(Tuple&&) = default;
4385  Tuple(const Tuple&) = default;
4386  ~Tuple() = default;
4387  Tuple& operator=(Tuple&&) = default;
4388  Tuple& operator=(const Tuple&) = default;
4389 
4391  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19>
4392  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15, A16&& a16, A17&& a17, A18&& a18, A19&& a19)
4393  : Value0(std::forward<A0>(a0))
4394  , Value1(std::forward<A1>(a1))
4395  , Value2(std::forward<A2>(a2))
4396  , Value3(std::forward<A3>(a3))
4397  , Value4(std::forward<A4>(a4))
4398  , Value5(std::forward<A5>(a5))
4399  , Value6(std::forward<A6>(a6))
4400  , Value7(std::forward<A7>(a7))
4401  , Value8(std::forward<A8>(a8))
4402  , Value9(std::forward<A9>(a9))
4403  , Value10(std::forward<A10>(a10))
4404  , Value11(std::forward<A11>(a11))
4405  , Value12(std::forward<A12>(a12))
4406  , Value13(std::forward<A13>(a13))
4407  , Value14(std::forward<A14>(a14))
4408  , Value15(std::forward<A15>(a15))
4409  , Value16(std::forward<A16>(a16))
4410  , Value17(std::forward<A17>(a17))
4411  , Value18(std::forward<A18>(a18))
4412  , Value19(std::forward<A19>(a19))
4413  {
4414  }
4415 
4416  template <vtkm::IdComponent Index>
4417  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4418  {
4419  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4420  }
4421 
4422  template <vtkm::IdComponent Index>
4423  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4424  {
4425  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4426  }
4427 
4429  template <typename Function, typename... Args>
4431  auto Apply(Function&& f, Args&&... args)
4432  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19))
4433  {
4434  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19);
4435  }
4437  template <typename Function, typename... Args>
4439  auto Apply(Function&& f, Args&&... args) const
4440  -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19))
4441  {
4442  return f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19);
4443  }
4444 
4446  template <typename Function>
4447  VTKM_EXEC_CONT void ForEach(Function&& f)
4448  {
4449  detail::TupleForEach(*this, std::forward<Function>(f));
4450  }
4452  template <typename Function>
4453  VTKM_EXEC_CONT void ForEach(Function&& f) const
4454  {
4455  detail::TupleForEach(*this, std::forward<Function>(f));
4456  }
4457 
4459  template <typename Function>
4460  VTKM_EXEC_CONT auto Transform(Function&& f)
4461  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4462  {
4463  return detail::TupleTransform(*this, std::forward<Function>(f));
4464  }
4466  template <typename Function>
4467  VTKM_EXEC_CONT auto Transform(Function&& f) const
4468  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4469  {
4470  return detail::TupleTransform(*this, std::forward<Function>(f));
4471  }
4472 };
4473 
4474 
4475 // Fallback case for tuples with > 20 items.
4476 template<typename T0, typename T1, typename T2, typename T3, typename T4, typename T5, typename T6, typename T7, typename T8, typename T9, typename T10, typename T11, typename T12, typename T13, typename T14, typename T15, typename T16, typename T17, typename T18, typename T19, typename T20, typename... Ts>
4477 class Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts...>
4478 {
4480  static T0 ElementTypeI(vtkm::internal::IndexTag<0>);
4481  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>)
4482  {
4483  return this->Value0;
4484  }
4485  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T0>& GetImpl(vtkm::internal::IndexTag<0>) const
4486  {
4487  return this->Value0;
4488  }
4489 
4491  static T1 ElementTypeI(vtkm::internal::IndexTag<1>);
4492  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>)
4493  {
4494  return this->Value1;
4495  }
4496  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T1>& GetImpl(vtkm::internal::IndexTag<1>) const
4497  {
4498  return this->Value1;
4499  }
4500 
4502  static T2 ElementTypeI(vtkm::internal::IndexTag<2>);
4503  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>)
4504  {
4505  return this->Value2;
4506  }
4507  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T2>& GetImpl(vtkm::internal::IndexTag<2>) const
4508  {
4509  return this->Value2;
4510  }
4511 
4513  static T3 ElementTypeI(vtkm::internal::IndexTag<3>);
4514  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>)
4515  {
4516  return this->Value3;
4517  }
4518  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T3>& GetImpl(vtkm::internal::IndexTag<3>) const
4519  {
4520  return this->Value3;
4521  }
4522 
4524  static T4 ElementTypeI(vtkm::internal::IndexTag<4>);
4525  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>)
4526  {
4527  return this->Value4;
4528  }
4529  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T4>& GetImpl(vtkm::internal::IndexTag<4>) const
4530  {
4531  return this->Value4;
4532  }
4533 
4535  static T5 ElementTypeI(vtkm::internal::IndexTag<5>);
4536  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>)
4537  {
4538  return this->Value5;
4539  }
4540  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T5>& GetImpl(vtkm::internal::IndexTag<5>) const
4541  {
4542  return this->Value5;
4543  }
4544 
4546  static T6 ElementTypeI(vtkm::internal::IndexTag<6>);
4547  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>)
4548  {
4549  return this->Value6;
4550  }
4551  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T6>& GetImpl(vtkm::internal::IndexTag<6>) const
4552  {
4553  return this->Value6;
4554  }
4555 
4557  static T7 ElementTypeI(vtkm::internal::IndexTag<7>);
4558  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>)
4559  {
4560  return this->Value7;
4561  }
4562  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T7>& GetImpl(vtkm::internal::IndexTag<7>) const
4563  {
4564  return this->Value7;
4565  }
4566 
4568  static T8 ElementTypeI(vtkm::internal::IndexTag<8>);
4569  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>)
4570  {
4571  return this->Value8;
4572  }
4573  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T8>& GetImpl(vtkm::internal::IndexTag<8>) const
4574  {
4575  return this->Value8;
4576  }
4577 
4579  static T9 ElementTypeI(vtkm::internal::IndexTag<9>);
4580  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>)
4581  {
4582  return this->Value9;
4583  }
4584  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T9>& GetImpl(vtkm::internal::IndexTag<9>) const
4585  {
4586  return this->Value9;
4587  }
4588 
4589  T10 Value10;
4590  static T10 ElementTypeI(vtkm::internal::IndexTag<10>);
4591  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>)
4592  {
4593  return this->Value10;
4594  }
4595  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T10>& GetImpl(vtkm::internal::IndexTag<10>) const
4596  {
4597  return this->Value10;
4598  }
4599 
4600  T11 Value11;
4601  static T11 ElementTypeI(vtkm::internal::IndexTag<11>);
4602  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>)
4603  {
4604  return this->Value11;
4605  }
4606  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T11>& GetImpl(vtkm::internal::IndexTag<11>) const
4607  {
4608  return this->Value11;
4609  }
4610 
4611  T12 Value12;
4612  static T12 ElementTypeI(vtkm::internal::IndexTag<12>);
4613  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>)
4614  {
4615  return this->Value12;
4616  }
4617  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T12>& GetImpl(vtkm::internal::IndexTag<12>) const
4618  {
4619  return this->Value12;
4620  }
4621 
4622  T13 Value13;
4623  static T13 ElementTypeI(vtkm::internal::IndexTag<13>);
4624  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>)
4625  {
4626  return this->Value13;
4627  }
4628  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T13>& GetImpl(vtkm::internal::IndexTag<13>) const
4629  {
4630  return this->Value13;
4631  }
4632 
4633  T14 Value14;
4634  static T14 ElementTypeI(vtkm::internal::IndexTag<14>);
4635  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>)
4636  {
4637  return this->Value14;
4638  }
4639  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T14>& GetImpl(vtkm::internal::IndexTag<14>) const
4640  {
4641  return this->Value14;
4642  }
4643 
4644  T15 Value15;
4645  static T15 ElementTypeI(vtkm::internal::IndexTag<15>);
4646  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>)
4647  {
4648  return this->Value15;
4649  }
4650  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T15>& GetImpl(vtkm::internal::IndexTag<15>) const
4651  {
4652  return this->Value15;
4653  }
4654 
4655  T16 Value16;
4656  static T16 ElementTypeI(vtkm::internal::IndexTag<16>);
4657  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>)
4658  {
4659  return this->Value16;
4660  }
4661  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T16>& GetImpl(vtkm::internal::IndexTag<16>) const
4662  {
4663  return this->Value16;
4664  }
4665 
4666  T17 Value17;
4667  static T17 ElementTypeI(vtkm::internal::IndexTag<17>);
4668  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>)
4669  {
4670  return this->Value17;
4671  }
4672  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T17>& GetImpl(vtkm::internal::IndexTag<17>) const
4673  {
4674  return this->Value17;
4675  }
4676 
4677  T18 Value18;
4678  static T18 ElementTypeI(vtkm::internal::IndexTag<18>);
4679  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>)
4680  {
4681  return this->Value18;
4682  }
4683  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T18>& GetImpl(vtkm::internal::IndexTag<18>) const
4684  {
4685  return this->Value18;
4686  }
4687 
4688  T19 Value19;
4689  static T19 ElementTypeI(vtkm::internal::IndexTag<19>);
4690  VTKM_EXEC_CONT vtkm::internal::remove_cvref<T19>& GetImpl(vtkm::internal::IndexTag<19>)
4691  {
4692  return this->Value19;
4693  }
4694  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<T19>& GetImpl(vtkm::internal::IndexTag<19>) const
4695  {
4696  return this->Value19;
4697  }
4698 
4699 
4700  // Implement the "extra" objects in a sub-Tuple
4701  using RemainingValuesType = vtkm::Tuple<T20, Ts...>;
4703 
4704  template <vtkm::IdComponent Index>
4706  ElementTypeI(vtkm::internal::IndexTag<Index>);
4707 
4708  template <typename vtkm::IdComponent Index>
4709  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<vtkm::TupleElement<Index - 20, RemainingValuesType>>&
4710  GetImpl(vtkm::internal::IndexTag<Index>) { return vtkm::Get<Index - 20>(this->RemainingValues); }
4711  template <typename vtkm::IdComponent Index>
4712  VTKM_EXEC_CONT const vtkm::internal::remove_cvref<vtkm::TupleElement<Index - 20, RemainingValuesType>>&
4713  GetImpl(vtkm::internal::IndexTag<Index>) const { return vtkm::Get<Index - 20>(this->RemainingValues); }
4714 
4715  template <vtkm::IdComponent, typename>
4716  friend struct detail::TupleElementImpl;
4717 
4718 public:
4719  static constexpr vtkm::IdComponent Size =
4720  21 + static_cast<vtkm::IdComponent>(sizeof...(Ts));
4721  template <vtkm::IdComponent Index>
4722  using ElementType = vtkm::TupleElement<Index, Tuple<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts...>>;
4723 
4724  Tuple() = default;
4725  Tuple(Tuple&&) = default;
4726  Tuple(const Tuple&) = default;
4727  ~Tuple() = default;
4728  Tuple& operator=(Tuple&&) = default;
4729  Tuple& operator=(const Tuple&) = default;
4730 
4732  template <typename A0, typename A1, typename A2, typename A3, typename A4, typename A5, typename A6, typename A7, typename A8, typename A9, typename A10, typename A11, typename A12, typename A13, typename A14, typename A15, typename A16, typename A17, typename A18, typename A19, typename... As>
4733  VTKM_EXEC_CONT Tuple(A0&& a0, A1&& a1, A2&& a2, A3&& a3, A4&& a4, A5&& a5, A6&& a6, A7&& a7, A8&& a8, A9&& a9, A10&& a10, A11&& a11, A12&& a12, A13&& a13, A14&& a14, A15&& a15, A16&& a16, A17&& a17, A18&& a18, A19&& a19, As&&... remainingArgs)
4734  : Value0(std::forward<A0>(a0))
4735  , Value1(std::forward<A1>(a1))
4736  , Value2(std::forward<A2>(a2))
4737  , Value3(std::forward<A3>(a3))
4738  , Value4(std::forward<A4>(a4))
4739  , Value5(std::forward<A5>(a5))
4740  , Value6(std::forward<A6>(a6))
4741  , Value7(std::forward<A7>(a7))
4742  , Value8(std::forward<A8>(a8))
4743  , Value9(std::forward<A9>(a9))
4744  , Value10(std::forward<A10>(a10))
4745  , Value11(std::forward<A11>(a11))
4746  , Value12(std::forward<A12>(a12))
4747  , Value13(std::forward<A13>(a13))
4748  , Value14(std::forward<A14>(a14))
4749  , Value15(std::forward<A15>(a15))
4750  , Value16(std::forward<A16>(a16))
4751  , Value17(std::forward<A17>(a17))
4752  , Value18(std::forward<A18>(a18))
4753  , Value19(std::forward<A19>(a19))
4754  , RemainingValues(std::forward<As>(remainingArgs)...)
4755  {
4756  }
4757 
4758  template <vtkm::IdComponent Index>
4759  VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4760  {
4761  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4762  }
4763 
4764  template <vtkm::IdComponent Index>
4765  VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>{}))
4766  {
4767  return this->GetImpl(vtkm::internal::IndexTag<Index>{});
4768  }
4769 
4771  template <typename Function, typename... Args>
4773  auto Apply(Function&& f, Args&&... args)
4774  -> decltype(this->RemainingValues.Apply(std::forward<Function>(f),
4775  std::forward<Args>(args)...,
4776  this->Value0,
4777  this->Value1,
4778  this->Value2,
4779  this->Value3,
4780  this->Value4,
4781  this->Value5,
4782  this->Value6,
4783  this->Value7,
4784  this->Value8,
4785  this->Value9,
4786  this->Value10,
4787  this->Value11,
4788  this->Value12,
4789  this->Value13,
4790  this->Value14,
4791  this->Value15,
4792  this->Value16,
4793  this->Value17,
4794  this->Value18,
4795  this->Value19))
4796  {
4797  return this->RemainingValues.Apply(std::forward<Function>(f),
4798  std::forward<Args>(args)...,
4799  this->Value0,
4800  this->Value1,
4801  this->Value2,
4802  this->Value3,
4803  this->Value4,
4804  this->Value5,
4805  this->Value6,
4806  this->Value7,
4807  this->Value8,
4808  this->Value9,
4809  this->Value10,
4810  this->Value11,
4811  this->Value12,
4812  this->Value13,
4813  this->Value14,
4814  this->Value15,
4815  this->Value16,
4816  this->Value17,
4817  this->Value18,
4818  this->Value19);
4819  }
4821  template <typename Function, typename... Args>
4823  auto Apply(Function&& f, Args&&... args) const
4824  -> decltype(this->RemainingValues.Apply(std::forward<Function>(f),
4825  std::forward<Args>(args)...,
4826  this->Value0,
4827  this->Value1,
4828  this->Value2,
4829  this->Value3,
4830  this->Value4,
4831  this->Value5,
4832  this->Value6,
4833  this->Value7,
4834  this->Value8,
4835  this->Value9,
4836  this->Value10,
4837  this->Value11,
4838  this->Value12,
4839  this->Value13,
4840  this->Value14,
4841  this->Value15,
4842  this->Value16,
4843  this->Value17,
4844  this->Value18,
4845  this->Value19))
4846  {
4847  return this->RemainingValues.Apply(std::forward<Function>(f),
4848  std::forward<Args>(args)...,
4849  this->Value0,
4850  this->Value1,
4851  this->Value2,
4852  this->Value3,
4853  this->Value4,
4854  this->Value5,
4855  this->Value6,
4856  this->Value7,
4857  this->Value8,
4858  this->Value9,
4859  this->Value10,
4860  this->Value11,
4861  this->Value12,
4862  this->Value13,
4863  this->Value14,
4864  this->Value15,
4865  this->Value16,
4866  this->Value17,
4867  this->Value18,
4868  this->Value19);
4869  }
4870 
4872  template <typename Function>
4873  VTKM_EXEC_CONT void ForEach(Function&& f)
4874  {
4875  detail::TupleForEach(*this, std::forward<Function>(f));
4876  }
4878  template <typename Function>
4879  VTKM_EXEC_CONT void ForEach(Function&& f) const
4880  {
4881  detail::TupleForEach(*this, std::forward<Function>(f));
4882  }
4883 
4885  template <typename Function>
4886  VTKM_EXEC_CONT auto Transform(Function&& f)
4887  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4888  {
4889  return detail::TupleTransform(*this, std::forward<Function>(f));
4890  }
4892  template <typename Function>
4893  VTKM_EXEC_CONT auto Transform(Function&& f) const
4894  -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
4895  {
4896  return detail::TupleTransform(*this, std::forward<Function>(f));
4897  }
4898 };
4899 
4901 
4902 // clang-format on
4903 
4904 } // namespace vtkm
4905 
4906 #endif //vtk_m_Tuple_h
vtkm::get
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto get(const vtkm::Tuple< Ts... > &tuple) -> decltype(vtkm::Get< static_cast< vtkm::IdComponent >(Index)>(tuple))
Compatible with std::get for vtkm::Tuple.
Definition: Tuple.h:101
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16))
Definition: Tuple.h:3494
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:871
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value11
T11 Value11
Definition: Tuple.h:2561
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:1586
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:4196
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value1
T1 Value1
Definition: Tuple.h:1758
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:3379
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value13
T13 Value13
Definition: Tuple.h:3384
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8))
Definition: Tuple.h:1494
vtkm::Tuple< T0, T1 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:403
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15, A16 &&a16, A17 &&a17, A18 &&a18, A19 &&a19)
Definition: Tuple.h:4392
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1362
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:974
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value6
T6 Value6
Definition: Tuple.h:2263
vtkm::Tuple< T0, T1 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:318
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:2567
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >) const
Definition: Tuple.h:3423
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:4277
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:556
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:1942
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:2734
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:2416
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:4562
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:1630
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:2335
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 > > ElementType
Definition: Tuple.h:1879
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1190
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:3019
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:3302
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value15
T15 Value15
Definition: Tuple.h:3406
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7 > > ElementType
Definition: Tuple.h:1261
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value12
T12 Value12
Definition: Tuple.h:2827
vtkm::Tuple< T0, T1 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1))
Definition: Tuple.h:381
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:3045
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:2093
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:1782
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value6
T6 Value6
Definition: Tuple.h:2032
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:2512
vtkm::TupleElement
typename detail::TupleElementImpl< Index, TupleType >::type TupleElement
Becomes the type of the given index for the given vtkm::Tuple.
Definition: Tuple.h:63
vtkm::Tuple< T0 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:306
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:2800
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:1804
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value1
T1 Value1
Definition: Tuple.h:1173
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:4207
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12))
Definition: Tuple.h:2394
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:2067
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value1
T1 Value1
Definition: Tuple.h:3543
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:961
vtkm::Tuple< T0, T1, T2, T3, T4 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:808
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:1859
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:1384
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:3063
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value4
T4 Value4
Definition: Tuple.h:1584
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6)
Definition: Tuple.h:1090
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:1641
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:3892
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:4639
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value6
T6 Value6
Definition: Tuple.h:4545
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:3973
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:4481
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15))
Definition: Tuple.h:3195
vtkm::Tuple< T0, T1, T2, T3 >::Value1
T1 Value1
Definition: Tuple.h:561
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:1808
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1693
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value0
T0 Value0
Definition: Tuple.h:991
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >)
Definition: Tuple.h:4024
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:3331
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value9
T9 Value9
Definition: Tuple.h:2794
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:2840
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:834
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:4218
vtkm::Tuple< T0, T1, T2 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:433
vtkm::Tuple< T0, T1, T2 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:540
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:4163
vtkm::Tuple< T0, T1, T2, T3 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3))
Definition: Tuple.h:647
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3515
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value13
T13 Value13
Definition: Tuple.h:3675
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:3805
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value3
T3 Value3
Definition: Tuple.h:1999
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1949
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:1030
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >)
Definition: Tuple.h:4350
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:2071
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value2
T2 Value2
Definition: Tuple.h:1988
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2180
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14))
Definition: Tuple.h:2916
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value7
T7 Value7
Definition: Tuple.h:1239
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:3914
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:3677
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:3859
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value5
T5 Value5
Definition: Tuple.h:3587
vtkm::Tuple< T0, T1, T2, T3, T4 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:802
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:2309
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:2173
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:3412
vtkm::Tuple< T0, T1, T2 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2)
Definition: Tuple.h:482
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:567
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:3265
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5 > > ElementType
Definition: Tuple.h:909
Types.h
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:3390
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:838
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value3
T3 Value3
Definition: Tuple.h:1573
vtkm::Tuple<>::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)...))
Definition: Tuple.h:192
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:698
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value1
T1 Value1
Definition: Tuple.h:1551
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value6
T6 Value6
Definition: Tuple.h:3028
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:3052
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:931
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:1623
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:3984
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value5
T5 Value5
Definition: Tuple.h:2021
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:3085
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11)
Definition: Tuple.h:2120
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >) const
Definition: Tuple.h:4028
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 > > ElementType
Definition: Tuple.h:3741
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value1
T1 Value1
Definition: Tuple.h:2451
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< vtkm::TupleElement< Index - 20, RemainingValuesType > > & GetImpl(vtkm::internal::IndexTag< Index >) const
Definition: Tuple.h:4713
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:2442
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1004
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:2210
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:2997
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value2
T2 Value2
Definition: Tuple.h:1367
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7))
Definition: Tuple.h:1299
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:1223
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value8
T8 Value8
Definition: Tuple.h:3923
VTKM_EXEC_CONT
#define VTKM_EXEC_CONT
Definition: ExportMacros.h:52
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value16
T16 Value16
Definition: Tuple.h:3708
vtkm::Tuple< T0 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0))
Definition: Tuple.h:270
vtkm::tuple_element_t
typename tuple_element< Index, TupleType >::type tuple_element_t
Compatible with std::tuple_element_t for vtkm::Tuple.
Definition: Tuple.h:76
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:4558
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:724
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:3837
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value16
T16 Value16
Definition: Tuple.h:4655
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4423
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:2027
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:3100
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:3309
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value3
T3 Value3
Definition: Tuple.h:4512
vtkm::Get
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Get(const vtkm::Tuple< Ts... > &tuple) -> decltype(tuple.template Get< Index >())
Retrieve the object from a vtkm::Tuple at the given index.
Definition: Tuple.h:83
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:1793
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value8
T8 Value8
Definition: Tuple.h:1628
vtkm::Tuple<>
Definition: Tuple.h:178
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value19
T19 Value19
Definition: Tuple.h:4688
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value5
T5 Value5
Definition: Tuple.h:3017
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:4617
vtkm::IdComponent
vtkm::Int32 IdComponent
Represents a component ID (index of component in a vector).
Definition: Types.h:168
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 > > ElementType
Definition: Tuple.h:4055
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:4646
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:4273
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:2723
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:4503
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value2
T2 Value2
Definition: Tuple.h:3263
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value17
T17 Value17
Definition: Tuple.h:3719
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:4628
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:1645
vtkm::Tuple< T0, T1, T2 >::Value2
T2 Value2
Definition: Tuple.h:449
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value7
T7 Value7
Definition: Tuple.h:4227
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:4152
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value4
T4 Value4
Definition: Tuple.h:1791
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3181
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value7
T7 Value7
Definition: Tuple.h:3318
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:1413
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value6
T6 Value6
Definition: Tuple.h:1411
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 > > ElementType
Definition: Tuple.h:2871
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1906
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:2313
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >)
Definition: Tuple.h:4035
vtkm::Tuple< T0 >::Value0
T0 Value0
Definition: Tuple.h:217
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:2745
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:4529
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:3118
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value4
T4 Value4
Definition: Tuple.h:2010
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11))
Definition: Tuple.h:2159
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:2990
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value3
T3 Value3
Definition: Tuple.h:4183
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 > > ElementType
Definition: Tuple.h:4381
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1175
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:1138
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:1037
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3775
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value3
T3 Value3
Definition: Tuple.h:1195
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:1041
vtkm::Tuple< T0 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:219
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value4
T4 Value4
Definition: Tuple.h:4523
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value4
T4 Value4
Definition: Tuple.h:4194
vtkm::Tuple< T0, T1 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1 > > ElementType
Definition: Tuple.h:349
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:2221
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:1052
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4417
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2902
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value10
T10 Value10
Definition: Tuple.h:4260
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:2932
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value2
T2 Value2
Definition: Tuple.h:1562
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2380
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1369
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:2855
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 > > ElementType
Definition: Tuple.h:3149
vtkm::Tuple< T0, T1 >::Value0
T0 Value0
Definition: Tuple.h:316
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:4189
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2678
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:552
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:2331
vtkm::Tuple< T0, T1 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:322
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value1
T1 Value1
Definition: Tuple.h:2706
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value10
T10 Value10
Definition: Tuple.h:4589
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:3034
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:4174
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5))
Definition: Tuple.h:945
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1553
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2641
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:4514
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:2060
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value12
T12 Value12
Definition: Tuple.h:4282
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:2523
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value8
T8 Value8
Definition: Tuple.h:2285
vtkm::Tuple< T0 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:223
vtkm::Tuple< T0 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:299
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:2829
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:3659
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:4240
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value7
T7 Value7
Definition: Tuple.h:2043
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:1815
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value8
T8 Value8
Definition: Tuple.h:2528
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:4310
vtkm::Tuple< T0, T1 >::Value1
T1 Value1
Definition: Tuple.h:327
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:2938
vtkm::Tuple< T0, T1, T2, T3, T4 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4 > > ElementType
Definition: Tuple.h:751
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value13
T13 Value13
Definition: Tuple.h:2838
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value2
T2 Value2
Definition: Tuple.h:2462
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value11
T11 Value11
Definition: Tuple.h:2087
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:2280
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:2589
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value1
T1 Value1
Definition: Tuple.h:2208
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value5
T5 Value5
Definition: Tuple.h:1046
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:2497
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >) const
Definition: Tuple.h:4683
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value14
T14 Value14
Definition: Tuple.h:3686
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:713
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:3258
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:3644
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:2833
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:4507
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >) const
Definition: Tuple.h:4672
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:867
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:4525
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:1347
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2635
vtkm::TupleSize
std::integral_constant< vtkm::IdComponent, TupleType::Size > TupleSize
Get the size of a tuple.
Definition: Tuple.h:42
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value0
T0 Value0
Definition: Tuple.h:1966
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value7
T7 Value7
Definition: Tuple.h:2772
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 > > ElementType
Definition: Tuple.h:1661
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3818
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:2001
vtkm::MakeTuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto MakeTuple(Ts &&... args) -> vtkm::Tuple< typename std::decay< Ts >::type... >
Creates a new vtkm::Tuple with the given types.
Definition: Tuple.h:120
vtkm::Tuple< T0, T1 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:333
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value3
T3 Value3
Definition: Tuple.h:2473
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:1245
vtkm::Tuple< T0, T1 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1)
Definition: Tuple.h:360
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value1
T1 Value1
Definition: Tuple.h:1977
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:1168
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:3008
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:574
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:2545
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:1837
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value10
T10 Value10
Definition: Tuple.h:3351
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3472
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:4591
vtkm::Tuple< T0, T1, T2 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:526
vtkm::Tuple< T0, T1, T2 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:490
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >) const
Definition: Tuple.h:4017
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10))
Definition: Tuple.h:1928
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13)
Definition: Tuple.h:2616
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:3626
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value6
T6 Value6
Definition: Tuple.h:2506
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value2
T2 Value2
Definition: Tuple.h:3857
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1737
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value4
T4 Value4
Definition: Tuple.h:1206
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4133
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:4518
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1764
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:3287
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:2968
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:1048
vtkm::Tuple< T0, T1, T2, T3 >::Value0
T0 Value0
Definition: Tuple.h:550
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1760
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:4624
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:3874
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value2
T2 Value2
Definition: Tuple.h:2219
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:2464
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:3254
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:3386
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value15
T15 Value15
Definition: Tuple.h:3127
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:3538
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:4595
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value10
T10 Value10
Definition: Tuple.h:2307
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:3078
vtkm::tuple_element
Compatible with std::tuple_element for vtkm::Tuple.
Definition: Tuple.h:68
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:2276
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:1575
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10)
Definition: Tuple.h:1890
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:3688
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:3940
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value5
T5 Value5
Definition: Tuple.h:887
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >) const
Definition: Tuple.h:4039
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:4233
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:1424
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:3951
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value0
T0 Value0
Definition: Tuple.h:1540
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1358
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:3269
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:2986
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value8
T8 Value8
Definition: Tuple.h:2054
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:3298
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value3
T3 Value3
Definition: Tuple.h:3274
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value2
T2 Value2
Definition: Tuple.h:4172
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value0
T0 Value0
Definition: Tuple.h:3532
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:3320
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:2975
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value7
T7 Value7
Definition: Tuple.h:1617
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2908
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:1597
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:4635
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:731
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >)
Definition: Tuple.h:4339
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value11
T11 Value11
Definition: Tuple.h:3362
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value6
T6 Value6
Definition: Tuple.h:1813
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:2508
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1179
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:2034
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:4167
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3825
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value0
T0 Value0
Definition: Tuple.h:4479
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15, A16 &&a16, A17 &&a17, A18 &&a18, A19 &&a19, As &&... remainingArgs)
Definition: Tuple.h:4733
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value10
T10 Value10
Definition: Tuple.h:3072
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value13
T13 Value13
Definition: Tuple.h:4293
vtkm::Tuple<>::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&) const
Definition: Tuple.h:200
vtkm::Tuple< T0, T1, T2, T3 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:655
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1983
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:1395
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1145
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:3896
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2685
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >)
Definition: Tuple.h:4657
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1912
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:4266
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:3947
vtkm::Tuple< T0, T1 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:367
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:2708
vtkm::Tuple< T0, T1, T2 >::Value1
T1 Value1
Definition: Tuple.h:438
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:3280
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value12
T12 Value12
Definition: Tuple.h:3967
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value7
T7 Value7
Definition: Tuple.h:4556
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:856
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:3096
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:3056
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:589
vtkm::Tuple< T0, T1, T2 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:429
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:4200
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:1546
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10))
Definition: Tuple.h:1920
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13))
Definition: Tuple.h:2657
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:3907
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:2287
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value12
T12 Value12
Definition: Tuple.h:2329
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:4569
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:3122
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:3111
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:4185
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value13
T13 Value13
Definition: Tuple.h:2583
vtkm::Tuple< T0 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0)
Definition: Tuple.h:250
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >)
Definition: Tuple.h:3721
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value11
T11 Value11
Definition: Tuple.h:4600
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value0
T0 Value0
Definition: Tuple.h:832
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value9
T9 Value9
Definition: Tuple.h:3340
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:2785
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19))
Definition: Tuple.h:4439
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:2778
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9))
Definition: Tuple.h:1709
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:1612
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value5
T5 Value5
Definition: Tuple.h:4205
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value16
T16 Value16
Definition: Tuple.h:4011
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:3925
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1990
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:3881
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value9
T9 Value9
Definition: Tuple.h:1639
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1523
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value5
T5 Value5
Definition: Tuple.h:2252
vtkm::Tuple< T0, T1, T2, T3, T4 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:778
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:1212
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value3
T3 Value3
Definition: Tuple.h:1024
vtkm::Tuple< T0 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:286
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value5
T5 Value5
Definition: Tuple.h:1595
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value15
T15 Value15
Definition: Tuple.h:4644
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14)
Definition: Tuple.h:2882
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value0
T0 Value0
Definition: Tuple.h:2962
vtkm::Tuple< T0, T1, T2, T3 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:631
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:893
vtkm::Tuple< T0, T1, T2 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:520
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:1435
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:4613
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value3
T3 Value3
Definition: Tuple.h:2230
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:2457
vtkm::Tuple< T0 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:262
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:3980
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:2578
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1328
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >)
Definition: Tuple.h:4328
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value6
T6 Value6
Definition: Tuple.h:1057
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value2
T2 Value2
Definition: Tuple.h:3554
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:1968
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value9
T9 Value9
Definition: Tuple.h:4578
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:3848
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1557
vtkm::Tuple< T0, T1 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:397
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:1197
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value0
T0 Value0
Definition: Tuple.h:1747
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:4602
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:2752
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value4
T4 Value4
Definition: Tuple.h:2739
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value18
T18 Value18
Definition: Tuple.h:4033
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:1059
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value8
T8 Value8
Definition: Tuple.h:4238
vtkm::Tuple< T0, T1, T2, T3, T4 >::Value1
T1 Value1
Definition: Tuple.h:696
vtkm::Tuple< T0, T1, T2 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2))
Definition: Tuple.h:512
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:845
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:1008
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value11
T11 Value11
Definition: Tuple.h:3956
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15, A16 &&a16, A17 &&a17, A18 &&a18)
Definition: Tuple.h:4066
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value0
T0 Value0
Definition: Tuple.h:1162
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< vtkm::TupleElement< Index - 20, RemainingValuesType > > & GetImpl(vtkm::internal::IndexTag< Index >)
Definition: Tuple.h:4710
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:2796
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:1797
vtkm::Tuple< T0, T1, T2, T3 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3 > > ElementType
Definition: Tuple.h:605
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4893
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value1
T1 Value1
Definition: Tuple.h:843
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:3670
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:4650
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:3589
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value16
T16 Value16
Definition: Tuple.h:4326
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:2730
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:3089
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:4306
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:2822
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value9
T9 Value9
Definition: Tuple.h:2296
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:1634
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value11
T11 Value11
Definition: Tuple.h:2816
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value4
T4 Value4
Definition: Tuple.h:2241
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:967
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:2774
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value11
T11 Value11
Definition: Tuple.h:2318
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value3
T3 Value3
Definition: Tuple.h:865
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value0
T0 Value0
Definition: Tuple.h:3835
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:4002
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:1608
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1568
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:3936
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:3991
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:2563
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T19 > & GetImpl(vtkm::internal::IndexTag< 19 >)
Definition: Tuple.h:4690
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:1979
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:993
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value3
T3 Value3
Definition: Tuple.h:3868
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16))
Definition: Tuple.h:3486
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2423
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:3375
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:2005
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:585
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:2254
vtkm::Tuple< T0, T1, T2, T3 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:625
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value6
T6 Value6
Definition: Tuple.h:2761
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:4606
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18))
Definition: Tuple.h:4112
vtkm::Tuple< T0, T1, T2, T3, T4 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4))
Definition: Tuple.h:786
vtkm::Tuple< T0, T1 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1))
Definition: Tuple.h:389
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:3324
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:2056
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15)
Definition: Tuple.h:3160
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value12
T12 Value12
Definition: Tuple.h:3094
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:2534
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(this->RemainingValues.Apply(std::forward< Function >(f), std::forward< Args >(args)..., this->Value0, this->Value1, this->Value2, this->Value3, this->Value4, this->Value5, this->Value6, this->Value7, this->Value8, this->Value9, this->Value10, this->Value11, this->Value12, this->Value13, this->Value14, this->Value15, this->Value16, this->Value17, this->Value18, this->Value19))
Definition: Tuple.h:4823
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18))
Definition: Tuple.h:4104
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value9
T9 Value9
Definition: Tuple.h:3631
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:3012
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value2
T2 Value2
Definition: Tuple.h:1769
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:3353
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value2
T2 Value2
Definition: Tuple.h:2984
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:2574
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value5
T5 Value5
Definition: Tuple.h:3890
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:2225
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value19
T19 Value19
Definition: Tuple.h:4359
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value4
T4 Value4
Definition: Tuple.h:3285
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value3
T3 Value3
Definition: Tuple.h:1378
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:2964
Index
int Index
Definition: ChooseCudaDevice.h:87
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1480
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:1164
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:3958
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:3969
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14))
Definition: Tuple.h:2924
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:2049
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:2530
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:2012
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:2475
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value4
T4 Value4
Definition: Tuple.h:3006
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:849
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:1230
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:3962
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value17
T17 Value17
Definition: Tuple.h:4337
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value8
T8 Value8
Definition: Tuple.h:4567
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value1
T1 Value1
Definition: Tuple.h:1002
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4467
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3231
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:3313
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value18
T18 Value18
Definition: Tuple.h:4348
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8)
Definition: Tuple.h:1466
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:4551
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:4879
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value0
T0 Value0
Definition: Tuple.h:2197
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:1717
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::RemainingValues
RemainingValuesType RemainingValues
Definition: Tuple.h:4702
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:1026
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value15
T15 Value15
Definition: Tuple.h:4000
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value4
T4 Value4
Definition: Tuple.h:3576
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value9
T9 Value9
Definition: Tuple.h:2539
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:1590
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:3655
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:1786
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:4540
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value8
T8 Value8
Definition: Tuple.h:1835
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value0
T0 Value0
Definition: Tuple.h:2695
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:1402
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:4178
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1956
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:4006
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:3560
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value8
T8 Value8
Definition: Tuple.h:3620
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:1819
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:937
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:3243
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value6
T6 Value6
Definition: Tuple.h:3901
vtkm::make_tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto make_tuple(Ts &&... args) -> decltype(vtkm::MakeTuple(std::forward< Ts >(args)...))
Compatible with std::make_tuple for vtkm::Tuple.
Definition: Tuple.h:129
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value9
T9 Value9
Definition: Tuple.h:3061
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:2082
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:4584
vtkm::Tuple< T0, T1 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:417
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13))
Definition: Tuple.h:2649
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2952
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:2818
vtkm::Tuple< T0, T1 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:329
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:3133
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value11
T11 Value11
Definition: Tuple.h:4271
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value7
T7 Value7
Definition: Tuple.h:3912
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:3611
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:2078
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:2486
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:4251
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 > > ElementType
Definition: Tuple.h:1455
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:4447
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value11
T11 Value11
Definition: Tuple.h:3083
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value17
T17 Value17
Definition: Tuple.h:4666
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value13
T13 Value13
Definition: Tuple.h:4622
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:4573
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11))
Definition: Tuple.h:2151
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value10
T10 Value10
Definition: Tuple.h:2550
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:1936
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value1
T1 Value1
Definition: Tuple.h:4161
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value6
T6 Value6
Definition: Tuple.h:3598
vtkm::Tuple<>::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT vtkm::Tuple Transform(Function &&) const
Definition: Tuple.h:206
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:2468
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:578
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:1406
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:735
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:1132
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:1848
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:3578
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:1428
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:4295
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:2741
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:3030
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Value7
T7 Value7
Definition: Tuple.h:2274
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:709
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:3401
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:2265
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:3567
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value2
T2 Value2
Definition: Tuple.h:2717
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:997
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1771
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:4244
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 > > ElementType
Definition: Tuple.h:2351
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:3041
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1775
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value5
T5 Value5
Definition: Tuple.h:4534
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1285
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1687
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value8
T8 Value8
Definition: Tuple.h:3050
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8))
Definition: Tuple.h:1502
vtkm::Tuple< T0, T1 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:373
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value10
T10 Value10
Definition: Tuple.h:2805
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:1380
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:3335
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:1321
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:3604
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value1
T1 Value1
Definition: Tuple.h:3252
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:3291
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:1723
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value5
T5 Value5
Definition: Tuple.h:1802
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3478
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value6
T6 Value6
Definition: Tuple.h:3307
vtkm::Tuple< T0, T1, T2, T3 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:668
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1486
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:4873
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15))
Definition: Tuple.h:3203
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value1
T1 Value1
Definition: Tuple.h:3846
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value0
T0 Value0
Definition: Tuple.h:2440
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value7
T7 Value7
Definition: Tuple.h:2517
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4886
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:3995
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:2023
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:889
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:4536
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3781
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:4126
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value13
T13 Value13
Definition: Tuple.h:3978
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:878
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:3666
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:4211
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:2247
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:1579
vtkm::Tuple< T0, T1, T2, T3, T4 >::Value0
T0 Value0
Definition: Tuple.h:685
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:2214
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1108
vtkm::Tuple< T0, T1, T2, T3, T4 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:815
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:2298
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value11
T11 Value11
Definition: Tuple.h:3653
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:3247
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1564
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value14
T14 Value14
Definition: Tuple.h:4304
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:2291
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:2167
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value4
T4 Value4
Definition: Tuple.h:876
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value15
T15 Value15
Definition: Tuple.h:3697
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >) const
Definition: Tuple.h:4332
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:1863
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:4156
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:1830
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:1542
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:2446
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >)
Definition: Tuple.h:3622
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value16
T16 Value16
Definition: Tuple.h:3417
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:2038
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:2236
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value9
T9 Value9
Definition: Tuple.h:2065
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:3067
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6))
Definition: Tuple.h:1124
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:3648
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:2243
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value14
T14 Value14
Definition: Tuple.h:2849
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:2789
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value8
T8 Value8
Definition: Tuple.h:2783
vtkm::Tuple< T0, T1, T2, T3 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:675
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value15
T15 Value15
Definition: Tuple.h:4315
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:2199
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:3549
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15, A16 &&a16)
Definition: Tuple.h:3450
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:2556
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value4
T4 Value4
Definition: Tuple.h:2484
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1373
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2430
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4460
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9))
Definition: Tuple.h:1701
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:2203
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value5
T5 Value5
Definition: Tuple.h:2750
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:3681
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:2479
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value2
T2 Value2
Definition: Tuple.h:1013
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5)
Definition: Tuple.h:920
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:1510
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:2552
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:1201
vtkm::Tuple< T0, T1, T2 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2 > > ElementType
Definition: Tuple.h:471
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:2324
vtkm::Tuple< T0, T1, T2, T3 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:661
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:4262
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1335
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:2712
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:4140
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:720
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value10
T10 Value10
Definition: Tuple.h:3642
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:1315
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value5
T5 Value5
Definition: Tuple.h:2495
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2143
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3224
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:3903
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:3582
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2187
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >) const
Definition: Tuple.h:4288
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4765
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value0
T0 Value0
Definition: Tuple.h:4150
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >)
Definition: Tuple.h:3710
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:1417
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value0
T0 Value0
Definition: Tuple.h:1345
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:3107
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value18
T18 Value18
Definition: Tuple.h:4677
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:1208
vtkm::Tuple< T0, T1, T2, T3, T4 >::Value4
T4 Value4
Definition: Tuple.h:729
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:4229
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value10
T10 Value10
Definition: Tuple.h:3945
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:4120
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value12
T12 Value12
Definition: Tuple.h:3664
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:2519
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value14
T14 Value14
Definition: Tuple.h:3395
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Value10
T10 Value10
Definition: Tuple.h:2076
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:4317
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value3
T3 Value3
Definition: Tuple.h:2995
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1730
vtkm::Tuple
VTK-m replacement for std::tuple.
Definition: Tuple.h:35
vtkm::Tuple< T0, T1, T2 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:455
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:4496
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value5
T5 Value5
Definition: Tuple.h:1217
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:3593
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:2320
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:3364
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1530
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value1
T1 Value1
Definition: Tuple.h:2973
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:2665
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:4547
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:3870
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::Value12
T12 Value12
Definition: Tuple.h:2572
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:3918
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6))
Definition: Tuple.h:1116
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value12
T12 Value12
Definition: Tuple.h:4611
vtkm::Tuple< T0, T1, T2, T3 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3))
Definition: Tuple.h:639
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value14
T14 Value14
Definition: Tuple.h:3116
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1019
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1291
vtkm::Tuple< T0 >::ElementType
vtkm::TupleElement< Index, Tuple< T0 > > ElementType
Definition: Tuple.h:239
vtkm::tuple_size
std::integral_constant< std::size_t, static_cast< std::size_t >(TupleType::Size)> tuple_size
Compatible with std::tuple_size for vtkm::Tuple.
Definition: Tuple.h:47
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >) const
Definition: Tuple.h:3714
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:860
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value10
T10 Value10
Definition: Tuple.h:1857
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:687
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:4222
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7))
Definition: Tuple.h:1307
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:1841
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:1994
vtkm::Tuple< T0 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0))
Definition: Tuple.h:278
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value1
T1 Value1
Definition: Tuple.h:4490
vtkm::Tuple< T0 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:292
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:2541
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2386
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:1749
vtkm::tuple_element::type
TupleElement< static_cast< vtkm::IdComponent >(Index), TupleType > type
Definition: Tuple.h:70
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:3276
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:4492
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:2302
vtkm::Tuple< T0, T1, T2, T3, T4 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4))
Definition: Tuple.h:794
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value9
T9 Value9
Definition: Tuple.h:3934
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value5
T5 Value5
Definition: Tuple.h:1400
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T12 > & GetImpl(vtkm::internal::IndexTag< 12 >)
Definition: Tuple.h:4284
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >) const
Definition: Tuple.h:4343
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:2763
vtkm::Tuple< T0, T1, T2, T3, T4 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:822
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:3187
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:1601
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6 > > ElementType
Definition: Tuple.h:1079
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >)
Definition: Tuple.h:1391
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value3
T3 Value3
Definition: Tuple.h:1780
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:3545
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value2
T2 Value2
Definition: Tuple.h:1184
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:2410
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:4255
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:882
vtkm::Tuple< T0, T1, T2 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:496
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value14
T14 Value14
Definition: Tuple.h:4633
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value9
T9 Value9
Definition: Tuple.h:4249
vtkm::Tuple< T0, T1, T2, T3 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:563
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12)
Definition: Tuple.h:2362
vtkm::Tuple< T0, T1, T2, T3, T4 >::Value2
T2 Value2
Definition: Tuple.h:707
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:3556
vtkm::Tuple< T0, T1, T2 >::Value0
T0 Value0
Definition: Tuple.h:427
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:3637
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:2767
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Value2
T2 Value2
Definition: Tuple.h:4501
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:3408
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:2490
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:3129
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:3346
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value7
T7 Value7
Definition: Tuple.h:1422
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >)
Definition: Tuple.h:2585
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value17
T17 Value17
Definition: Tuple.h:4022
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:1753
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:2269
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >) const
Definition: Tuple.h:3863
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:4321
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 > > ElementType
Definition: Tuple.h:2605
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >)
Definition: Tuple.h:1219
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:3397
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(this->RemainingValues.Apply(std::forward< Function >(f), std::forward< Args >(args)..., this->Value0, this->Value1, this->Value2, this->Value3, this->Value4, this->Value5, this->Value6, this->Value7, this->Value8, this->Value9, this->Value10, this->Value11, this->Value12, this->Value13, this->Value14, this->Value15, this->Value16, this->Value17, this->Value18, this->Value19))
Definition: Tuple.h:4773
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:3074
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:1516
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:3342
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:2697
vtkm::Tuple< T0, T1, T2, T3, T4 >::Value3
T3 Value3
Definition: Tuple.h:718
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Value6
T6 Value6
Definition: Tuple.h:1228
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value4
T4 Value4
Definition: Tuple.h:3879
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:691
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:3522
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:1102
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value12
T12 Value12
Definition: Tuple.h:3373
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T19 > & GetImpl(vtkm::internal::IndexTag< 19 >) const
Definition: Tuple.h:4694
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:3502
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value8
T8 Value8
Definition: Tuple.h:1433
vtkm::Tuple< T0, T1, T2, T3 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3)
Definition: Tuple.h:616
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:2719
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5))
Definition: Tuple.h:953
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:1241
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:2016
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17, Value18, Value19))
Definition: Tuple.h:4431
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:1063
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:3023
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:3571
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Value2
T2 Value2
Definition: Tuple.h:854
vtkm::Tuple< T0, T1, T2 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:444
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9)
Definition: Tuple.h:1672
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >)
Definition: Tuple.h:3699
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T4 > & GetImpl(vtkm::internal::IndexTag< 4 >) const
Definition: Tuple.h:3885
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1186
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:3841
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:2258
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value7
T7 Value7
Definition: Tuple.h:1824
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:4580
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Value4
T4 Value4
Definition: Tuple.h:1035
DecayHelpers.h
vtkm::Tuple<>::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)...))
Definition: Tuple.h:185
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:4485
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >) const
Definition: Tuple.h:3615
vtkm::Tuple< T0, T1, T2 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:440
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >)
Definition: Tuple.h:2232
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:2045
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:3852
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >) const
Definition: Tuple.h:3725
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >)
Definition: Tuple.h:3633
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Get
VTKM_EXEC_CONT auto Get() const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4096
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T9 > & GetImpl(vtkm::internal::IndexTag< 9 >) const
Definition: Tuple.h:1852
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value5
T5 Value5
Definition: Tuple.h:3296
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl(vtkm::internal::IndexTag< 3 >) const
Definition: Tuple.h:3001
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:4453
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 > > ElementType
Definition: Tuple.h:2109
vtkm::Tuple< T0, T1, T2, T3 >::Value2
T2 Value2
Definition: Tuple.h:572
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >)
Definition: Tuple.h:3419
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value13
T13 Value13
Definition: Tuple.h:3105
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 > > ElementType
Definition: Tuple.h:3439
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >)
Definition: Tuple.h:2089
vtkm::Tuple< T0 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:256
VTKM_SUPPRESS_EXEC_WARNINGS
#define VTKM_SUPPRESS_EXEC_WARNINGS
Definition: ExportMacros.h:53
IndexTag.h
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value8
T8 Value8
Definition: Tuple.h:3329
vtkm::Tuple< T0, T1, T2 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2))
Definition: Tuple.h:504
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:1351
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17))
Definition: Tuple.h:3797
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:1826
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12))
Definition: Tuple.h:2402
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >)
Definition: Tuple.h:4679
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >)
Definition: Tuple.h:4013
vtkm::Tuple< T0, T1, T2, T3, T4 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4)
Definition: Tuple.h:762
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >)
Definition: Tuple.h:3600
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:2945
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:2501
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:2844
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T19 > & GetImpl(vtkm::internal::IndexTag< 19 >)
Definition: Tuple.h:4361
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:2701
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T6 > & GetImpl(vtkm::internal::IndexTag< 6 >) const
Definition: Tuple.h:1234
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:3508
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:3217
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:3357
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::Value3
T3 Value3
Definition: Tuple.h:2728
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T11 > & GetImpl(vtkm::internal::IndexTag< 11 >) const
Definition: Tuple.h:3368
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T19 > & GetImpl(vtkm::internal::IndexTag< 19 >) const
Definition: Tuple.h:4365
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f)
Definition: Tuple.h:3211
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::Value7
T7 Value7
Definition: Tuple.h:3039
vtkm::Tuple< T0, T1 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:410
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:1152
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T17 > & GetImpl(vtkm::internal::IndexTag< 17 >)
Definition: Tuple.h:4668
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T13 > & GetImpl(vtkm::internal::IndexTag< 13 >) const
Definition: Tuple.h:4299
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4759
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >) const
Definition: Tuple.h:3692
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Apply
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply(Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8, Value9, Value10, Value11, Value12, Value13, Value14, Value15, Value16, Value17))
Definition: Tuple.h:3789
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::Value6
T6 Value6
Definition: Tuple.h:1606
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >) const
Definition: Tuple.h:1972
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value7
T7 Value7
Definition: Tuple.h:3609
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10 >::Value9
T9 Value9
Definition: Tuple.h:1846
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:2137
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >) const
Definition: Tuple.h:2811
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:1439
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T5 > & GetImpl(vtkm::internal::IndexTag< 5 >) const
Definition: Tuple.h:2756
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >)
Definition: Tuple.h:2453
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:1015
vtkm::Tuple< T0, T1, T2 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl(vtkm::internal::IndexTag< 2 >)
Definition: Tuple.h:451
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T8 > & GetImpl(vtkm::internal::IndexTag< 8 >) const
Definition: Tuple.h:3929
vtkm::Tuple< T0, T1, T2, T3, T4 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:702
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:4090
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T7 > & GetImpl(vtkm::internal::IndexTag< 7 >)
Definition: Tuple.h:1619
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:3811
vtkm::Tuple< T0, T1, T2, T3 >::Value3
T3 Value3
Definition: Tuple.h:583
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13 >::ForEach
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach(Function &&f) const
Definition: Tuple.h:2671
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16 >::Value0
T0 Value0
Definition: Tuple.h:3241
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value4
T4 Value4
Definition: Tuple.h:1389
vtkm::Tuple< T0, T1, T2 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:533
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18 >::Value14
T14 Value14
Definition: Tuple.h:3989
vtkm::Tuple< T0, T1, T2, T3, T4, T5 >::Transform
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform(Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
Definition: Tuple.h:981
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T16 > & GetImpl(vtkm::internal::IndexTag< 16 >) const
Definition: Tuple.h:4661
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Value3
T3 Value3
Definition: Tuple.h:3565
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T14 > & GetImpl(vtkm::internal::IndexTag< 14 >)
Definition: Tuple.h:2851
vtkm::Tuple< T0, T1, T2, T3, T4 >::Get
VTKM_EXEC_CONT auto Get() -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
Definition: Tuple.h:772
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8 >::Value1
T1 Value1
Definition: Tuple.h:1356
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T18 > & GetImpl(vtkm::internal::IndexTag< 18 >) const
Definition: Tuple.h:4354
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7)
Definition: Tuple.h:1272
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl(vtkm::internal::IndexTag< 0 >)
Definition: Tuple.h:3534
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl(vtkm::internal::IndexTag< 1 >) const
Definition: Tuple.h:2979
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::Tuple
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple(A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3, A4 &&a4, A5 &&a5, A6 &&a6, A7 &&a7, A8 &&a8, A9 &&a9, A10 &&a10, A11 &&a11, A12 &&a12, A13 &&a13, A14 &&a14, A15 &&a15, A16 &&a16, A17 &&a17)
Definition: Tuple.h:3752
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... >::ElementType
vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19, T20, Ts... > > ElementType
Definition: Tuple.h:4722
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14 >::GetImpl
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T10 > & GetImpl(vtkm::internal::IndexTag< 10 >)
Definition: Tuple.h:2807
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17, T18, T19 >::Value6
T6 Value6
Definition: Tuple.h:4216
vtkm::Tuple< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, T14, T15, T16, T17 >::GetImpl
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T15 > & GetImpl(vtkm::internal::IndexTag< 15 >) const
Definition: Tuple.h:3703