VTK-m  2.2
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 > Class Template Reference

#include <Tuple.h>

Public Types

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

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 >
 Tuple (A0 &&a0, A1 &&a1, A2 &&a2)
 
template<vtkm::IdComponent Index>
auto Get () -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
 
template<vtkm::IdComponent Index>
auto Get () const -> decltype(this->GetImpl(vtkm::internal::IndexTag< Index >
 
template<typename Function , typename... Args>
auto Apply (Function &&f, Args &&... args) -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2))
 
template<typename Function , typename... Args>
auto Apply (Function &&f, Args &&... args) const -> decltype(f(std::forward< Args >(args)..., Value0, Value1, Value2))
 
template<typename Function >
void ForEach (Function &&f)
 
template<typename Function >
void ForEach (Function &&f) const
 
template<typename Function >
auto Transform (Function &&f) -> decltype(vtkm::Transform(*this, std::forward< Function >(f)))
 
template<typename Function >
auto Transform (Function &&f) const -> decltype(vtkm::Transform(*this, std::forward< Function >(f)))
 

Static Public Attributes

static constexpr vtkm::IdComponent Size = 3
 

Private Member Functions

vtkm::internal::remove_cvref< T0 > & GetImpl (vtkm::internal::IndexTag< 0 >)
 
const vtkm::internal::remove_cvref< T0 > & GetImpl (vtkm::internal::IndexTag< 0 >) const
 
vtkm::internal::remove_cvref< T1 > & GetImpl (vtkm::internal::IndexTag< 1 >)
 
const vtkm::internal::remove_cvref< T1 > & GetImpl (vtkm::internal::IndexTag< 1 >) const
 
vtkm::internal::remove_cvref< T2 > & GetImpl (vtkm::internal::IndexTag< 2 >)
 
const vtkm::internal::remove_cvref< T2 > & GetImpl (vtkm::internal::IndexTag< 2 >) 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 >)
 
template<vtkm::IdComponent Index>
static vtkm::internal::NullType ElementTypeI (vtkm::internal::IndexTag< Index >)
 

Private Attributes

T0 Value0
 
T1 Value1
 
T2 Value2
 

Member Typedef Documentation

◆ ElementType

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

Constructor & Destructor Documentation

◆ Tuple() [1/4]

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

◆ Tuple() [2/4]

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

◆ Tuple() [3/4]

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

◆ ~Tuple()

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

◆ Tuple() [4/4]

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

Member Function Documentation

◆ Apply() [1/2]

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

◆ Apply() [2/2]

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

◆ ElementTypeI() [1/4]

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

◆ ElementTypeI() [2/4]

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

◆ ElementTypeI() [3/4]

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

◆ ElementTypeI() [4/4]

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

◆ ForEach() [1/2]

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

◆ ForEach() [2/2]

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

◆ Get() [1/2]

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

◆ Get() [2/2]

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

◆ GetImpl() [1/6]

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

◆ GetImpl() [2/6]

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

◆ GetImpl() [3/6]

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

◆ GetImpl() [4/6]

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

◆ GetImpl() [5/6]

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

◆ GetImpl() [6/6]

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

◆ operator=() [1/2]

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

◆ operator=() [2/2]

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

◆ Transform() [1/2]

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

◆ Transform() [2/2]

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

Member Data Documentation

◆ Size

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

◆ Value0

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

◆ Value1

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

◆ Value2

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

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