OPALX (Object Oriented Parallel Accelerator Library for Exascale) MINIorX
OPALX
ippl::TupleImpl< i, N, T, R, Ts... > Struct Template Reference

#include <Tuple.h>

Collaboration diagram for ippl::TupleImpl< i, N, T, R, Ts... >:
Collaboration graph

Public Member Functions

template<std::size_t Idx>
requires (Idx < N)
KOKKOS_INLINE_FUNCTION auto & get () noexcept
 
template<std::size_t Idx>
requires (Idx < N)
KOKKOS_INLINE_FUNCTION const auto & get () const noexcept
 
TupleImploperator= (const TupleImpl< i, N, T, R, Ts... > &t)=default
 
TupleImploperator= (TupleImpl< i, N, T, R, Ts... > &&t)=default
 
 TupleImpl (const TupleImpl< i, N, T, R, Ts... > &t)=default
 
 TupleImpl (TupleImpl< i, N, T, R, Ts... > &&t)=default
 
 TupleImpl ()=default
 
template<typename CtorT , typename CtorR , typename... CtorTs>
KOKKOS_INLINE_FUNCTION TupleImpl (CtorT &&t, CtorR &&r, CtorTs &&... ts)
 

Public Attributes

T val
 
TupleImpl< i+1, N, R, Ts... > next
 Remaining tuple elements: next doesn't have typename T anymore. More...
 

Detailed Description

template<std::size_t i, std::size_t N, typename T, typename R, typename... Ts>
struct ippl::TupleImpl< i, N, T, R, Ts... >

Definition at line 39 of file Tuple.h.

Constructor & Destructor Documentation

◆ TupleImpl() [1/4]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
ippl::TupleImpl< i, N, T, R, Ts... >::TupleImpl ( const TupleImpl< i, N, T, R, Ts... > &  t)
default

◆ TupleImpl() [2/4]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
ippl::TupleImpl< i, N, T, R, Ts... >::TupleImpl ( TupleImpl< i, N, T, R, Ts... > &&  t)
default

◆ TupleImpl() [3/4]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
ippl::TupleImpl< i, N, T, R, Ts... >::TupleImpl ( )
default

◆ TupleImpl() [4/4]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
template<typename CtorT , typename CtorR , typename... CtorTs>
KOKKOS_INLINE_FUNCTION ippl::TupleImpl< i, N, T, R, Ts... >::TupleImpl ( CtorT &&  t,
CtorR &&  r,
CtorTs &&...  ts 
)
inline

Definition at line 86 of file Tuple.h.

Member Function Documentation

◆ get() [1/2]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
template<std::size_t Idx>
requires (Idx < N)
KOKKOS_INLINE_FUNCTION const auto & ippl::TupleImpl< i, N, T, R, Ts... >::get ( ) const
inlinenoexcept

Definition at line 57 of file Tuple.h.

◆ get() [2/2]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
template<std::size_t Idx>
requires (Idx < N)
KOKKOS_INLINE_FUNCTION auto & ippl::TupleImpl< i, N, T, R, Ts... >::get ( )
inlinenoexcept

Definition at line 48 of file Tuple.h.

◆ operator=() [1/2]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
TupleImpl & ippl::TupleImpl< i, N, T, R, Ts... >::operator= ( const TupleImpl< i, N, T, R, Ts... > &  t)
default

◆ operator=() [2/2]

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
TupleImpl & ippl::TupleImpl< i, N, T, R, Ts... >::operator= ( TupleImpl< i, N, T, R, Ts... > &&  t)
default

Member Data Documentation

◆ next

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
TupleImpl<i + 1, N, R, Ts...> ippl::TupleImpl< i, N, T, R, Ts... >::next

Remaining tuple elements: next doesn't have typename T anymore.

Definition at line 45 of file Tuple.h.

◆ val

template<std::size_t i, std::size_t N, typename T , typename R , typename... Ts>
T ippl::TupleImpl< i, N, T, R, Ts... >::val

Definition at line 40 of file Tuple.h.


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