VTK-m  2.0
Public Types | Public Member Functions | Static Public Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
vtkm::Tuple< T0, T1, T2, T3 > Class Template Reference

#include <Tuple.h>

Public Types

template<vtkm::IdComponent Index>
using ElementType = vtkm::TupleElement< Index, Tuple< T0, T1, T2, T3 > >
 

Public Member Functions

 Tuple ()=default
 
 Tuple (Tuple &&)=default
 
 Tuple (const Tuple &)=default
 
 ~Tuple ()=default
 
Tupleoperator= (Tuple &&)=default
 
Tupleoperator= (const Tuple &)=default
 
template<typename A0 , typename A1 , typename A2 , typename A3 >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT Tuple (A0 &&a0, A1 &&a1, A2 &&a2, A3 &&a3)
 
template<vtkm::IdComponent Index>
VTKM_EXEC_CONT auto Get () -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
 
template<vtkm::IdComponent Index>
VTKM_EXEC_CONT auto Get () const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
 
template<typename Function , typename... Args>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply (Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3))
 
template<typename Function , typename... Args>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Apply (Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2, Value3))
 
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach (Function &&f)
 
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void ForEach (Function &&f) const
 
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform (Function &&f) -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
 
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto Transform (Function &&f) const -> decltype(detail::TupleTransform(*this, std::forward< Function >(f)))
 

Static Public Attributes

static constexpr vtkm::IdComponent Size = 4
 

Private Member Functions

VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl (vtkm::internal::IndexTag< 0 >)
 
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T0 > & GetImpl (vtkm::internal::IndexTag< 0 >) const
 
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl (vtkm::internal::IndexTag< 1 >)
 
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T1 > & GetImpl (vtkm::internal::IndexTag< 1 >) const
 
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl (vtkm::internal::IndexTag< 2 >)
 
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T2 > & GetImpl (vtkm::internal::IndexTag< 2 >) const
 
VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl (vtkm::internal::IndexTag< 3 >)
 
const VTKM_EXEC_CONT vtkm::internal::remove_cvref< T3 > & GetImpl (vtkm::internal::IndexTag< 3 >) const
 

Static Private Member Functions

static T0 ElementTypeI (vtkm::internal::IndexTag< 0 >)
 
static T1 ElementTypeI (vtkm::internal::IndexTag< 1 >)
 
static T2 ElementTypeI (vtkm::internal::IndexTag< 2 >)
 
static T3 ElementTypeI (vtkm::internal::IndexTag< 3 >)
 
template<vtkm::IdComponent Index>
static vtkm::internal::NullType ElementTypeI (vtkm::internal::IndexTag< Index >)
 

Private Attributes

T0 Value0
 
T1 Value1
 
T2 Value2
 
T3 Value3
 

Member Typedef Documentation

◆ ElementType

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<vtkm::IdComponent Index>
using vtkm::Tuple< T0, T1, T2, T3 >::ElementType = vtkm::TupleElement<Index, Tuple<T0, T1, T2, T3> >

Constructor & Destructor Documentation

◆ Tuple() [1/4]

template<typename T0 , typename T1 , typename T2 , typename T3 >
vtkm::Tuple< T0, T1, T2, T3 >::Tuple ( )
default

◆ Tuple() [2/4]

template<typename T0 , typename T1 , typename T2 , typename T3 >
vtkm::Tuple< T0, T1, T2, T3 >::Tuple ( Tuple< T0, T1, T2, T3 > &&  )
default

◆ Tuple() [3/4]

template<typename T0 , typename T1 , typename T2 , typename T3 >
vtkm::Tuple< T0, T1, T2, T3 >::Tuple ( const Tuple< T0, T1, T2, T3 > &  )
default

◆ ~Tuple()

template<typename T0 , typename T1 , typename T2 , typename T3 >
vtkm::Tuple< T0, T1, T2, T3 >::~Tuple ( )
default

◆ Tuple() [4/4]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename A0 , typename A1 , typename A2 , typename A3 >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT vtkm::Tuple< T0, T1, T2, T3 >::Tuple ( A0 &&  a0,
A1 &&  a1,
A2 &&  a2,
A3 &&  a3 
)
inline

Member Function Documentation

◆ Apply() [1/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function , typename... Args>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Apply ( Function &&  f,
Args &&...  args 
) -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3))
inline

◆ Apply() [2/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function , typename... Args>
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Apply ( Function &&  f,
Args &&...  args 
) const -> decltype(f(std::forward<Args>(args)..., Value0, Value1, Value2, Value3))
inline

◆ ElementTypeI() [1/5]

template<typename T0 , typename T1 , typename T2 , typename T3 >
static T0 vtkm::Tuple< T0, T1, T2, T3 >::ElementTypeI ( vtkm::internal::IndexTag< 0 >  )
staticprivate

◆ ElementTypeI() [2/5]

template<typename T0 , typename T1 , typename T2 , typename T3 >
static T1 vtkm::Tuple< T0, T1, T2, T3 >::ElementTypeI ( vtkm::internal::IndexTag< 1 >  )
staticprivate

◆ ElementTypeI() [3/5]

template<typename T0 , typename T1 , typename T2 , typename T3 >
static T2 vtkm::Tuple< T0, T1, T2, T3 >::ElementTypeI ( vtkm::internal::IndexTag< 2 >  )
staticprivate

◆ ElementTypeI() [4/5]

template<typename T0 , typename T1 , typename T2 , typename T3 >
static T3 vtkm::Tuple< T0, T1, T2, T3 >::ElementTypeI ( vtkm::internal::IndexTag< 3 >  )
staticprivate

◆ ElementTypeI() [5/5]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<vtkm::IdComponent Index>
static vtkm::internal::NullType vtkm::Tuple< T0, T1, T2, T3 >::ElementTypeI ( vtkm::internal::IndexTag< Index )
staticprivate

◆ ForEach() [1/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void vtkm::Tuple< T0, T1, T2, T3 >::ForEach ( Function &&  f)
inline

◆ ForEach() [2/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT void vtkm::Tuple< T0, T1, T2, T3 >::ForEach ( Function &&  f) const
inline

◆ Get() [1/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<vtkm::IdComponent Index>
VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Get ( ) -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>
inline

◆ Get() [2/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<vtkm::IdComponent Index>
VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Get ( ) const -> decltype(this->GetImpl(vtkm::internal::IndexTag<Index>
inline

◆ GetImpl() [1/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 0 >  )
inlineprivate

◆ GetImpl() [2/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
const VTKM_EXEC_CONT vtkm::internal::remove_cvref<T0>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 0 >  ) const
inlineprivate

◆ GetImpl() [3/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 1 >  )
inlineprivate

◆ GetImpl() [4/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
const VTKM_EXEC_CONT vtkm::internal::remove_cvref<T1>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 1 >  ) const
inlineprivate

◆ GetImpl() [5/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 2 >  )
inlineprivate

◆ GetImpl() [6/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
const VTKM_EXEC_CONT vtkm::internal::remove_cvref<T2>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 2 >  ) const
inlineprivate

◆ GetImpl() [7/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 3 >  )
inlineprivate

◆ GetImpl() [8/8]

template<typename T0 , typename T1 , typename T2 , typename T3 >
const VTKM_EXEC_CONT vtkm::internal::remove_cvref<T3>& vtkm::Tuple< T0, T1, T2, T3 >::GetImpl ( vtkm::internal::IndexTag< 3 >  ) const
inlineprivate

◆ operator=() [1/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
Tuple& vtkm::Tuple< T0, T1, T2, T3 >::operator= ( const Tuple< T0, T1, T2, T3 > &  )
default

◆ operator=() [2/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
Tuple& vtkm::Tuple< T0, T1, T2, T3 >::operator= ( Tuple< T0, T1, T2, T3 > &&  )
default

◆ Transform() [1/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Transform ( Function &&  f) -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
inline

◆ Transform() [2/2]

template<typename T0 , typename T1 , typename T2 , typename T3 >
template<typename Function >
VTKM_SUPPRESS_EXEC_WARNINGS VTKM_EXEC_CONT auto vtkm::Tuple< T0, T1, T2, T3 >::Transform ( Function &&  f) const -> decltype(detail::TupleTransform(*this, std::forward<Function>(f)))
inline

Member Data Documentation

◆ Size

template<typename T0 , typename T1 , typename T2 , typename T3 >
constexpr vtkm::IdComponent vtkm::Tuple< T0, T1, T2, T3 >::Size = 4
staticconstexpr

◆ Value0

template<typename T0 , typename T1 , typename T2 , typename T3 >
T0 vtkm::Tuple< T0, T1, T2, T3 >::Value0
private

◆ Value1

template<typename T0 , typename T1 , typename T2 , typename T3 >
T1 vtkm::Tuple< T0, T1, T2, T3 >::Value1
private

◆ Value2

template<typename T0 , typename T1 , typename T2 , typename T3 >
T2 vtkm::Tuple< T0, T1, T2, T3 >::Value2
private

◆ Value3

template<typename T0 , typename T1 , typename T2 , typename T3 >
T3 vtkm::Tuple< T0, T1, T2, T3 >::Value3
private

The documentation for this class was generated from the following file: