IPPL (Independent Parallel Particle Layer)
IPPL
Loading...
Searching...
No Matches
ippl::TupleImpl< i, N, T, R, Ts... > Struct Template Reference

#include <Tuple.h>

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

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.

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

References TupleImpl().

Referenced by operator=(), operator=(), TupleImpl(), and TupleImpl().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ 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

References TupleImpl().

Here is the call graph for this function:

◆ 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.

References next, and val.

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.

References ippl::get(), next, and val.

Here is the call graph for this function:

◆ 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.

References ippl::get(), next, and val.

Here is the call graph for this function:

◆ 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

References TupleImpl().

Here is the call graph for this function:

◆ 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

References TupleImpl().

Here is the call graph for this function:

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.

Referenced by get(), get(), and TupleImpl().

◆ 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.

Referenced by get(), get(), and TupleImpl().


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