IPPL API Reference
Independent Parallel Particle Layer C++ API
Loading...
Searching...
No Matches
ippl::Tuple< Ts > Class Template Reference

Generic tuple class with various operations. More...

#include <Tuple.h>

Public Member Functions

template<std::size_t Idx>
requires (Idx < sizeof...(Ts))
KOKKOS_INLINE_FUNCTION auto && get () noexcept
 
template<std::size_t Idx>
requires (Idx < sizeof...(Ts))
KOKKOS_INLINE_FUNCTION auto && get () const noexcept
 
template<typename Functor , std::size_t Idx, typename... OtherTs>
requires (std::is_copy_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION int applySingle (Functor func, const Tuple< OtherTs... > &other)
 
template<typename Functor , typename... OtherTs, std::size_t... Idx>
KOKKOS_INLINE_FUNCTION void applySequence (Functor func, const Tuple< OtherTs... > &other, const std::index_sequence< Idx... > &)
 
template<std::size_t Idx, typename... OtherTs>
requires (std::is_copy_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION int assignToSingle (const Tuple< OtherTs... > &other)
 
template<typename... OtherTs, std::size_t... Idx>
requires (std::is_copy_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION void assignToSequence (const Tuple< OtherTs... > &other, const std::index_sequence< Idx... > &)
 
template<std::size_t Idx, typename... OtherTs>
requires (std::is_move_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION int assignToSingle (Tuple< OtherTs... > &&other)
 
template<typename... OtherTs, std::size_t... Idx>
requires (std::is_move_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION void assignToSequence (Tuple< OtherTs... > &&other, const std::index_sequence< Idx... > &)
 
template<typename... OtherTs>
requires (std::is_copy_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION Tupleoperator= (const Tuple< OtherTs... > &other)
 
template<typename... OtherTs>
requires (std::is_move_assignable_v<Ts> && ...)
KOKKOS_INLINE_FUNCTION Tupleoperator= (Tuple< OtherTs... > &&other)
 
KOKKOS_INLINE_FUNCTION Tupleoperator+= (const Tuple &other)
 
KOKKOS_INLINE_FUNCTION Tupleoperator-= (const Tuple &other)
 
KOKKOS_INLINE_FUNCTION Tupleoperator*= (const Tuple &other)
 
KOKKOS_INLINE_FUNCTION Tupleoperator/= (const Tuple &other)
 
KOKKOS_INLINE_FUNCTION Tuple operator+ (const Tuple &other) const
 
KOKKOS_INLINE_FUNCTION Tuple operator- (const Tuple &other) const
 
KOKKOS_INLINE_FUNCTION Tuple operator* (const Tuple &other) const
 
KOKKOS_INLINE_FUNCTION Tuple operator/ (const Tuple &other) const
 
template<std::size_t Idx, std::size_t N, typename... OtherTs>
KOKKOS_INLINE_FUNCTION bool lexicographicalLess (const Tuple &other) const
 
template<std::size_t Idx, std::size_t N, typename... OtherTs>
KOKKOS_INLINE_FUNCTION bool lexicographicalEquals (const Tuple &other) const
 
template<typename... OtherTs>
requires ((sizeof...(Ts) == sizeof...(OtherTs)) && (std::totally_ordered<Ts> && ...))
KOKKOS_INLINE_FUNCTION bool operator< (const Tuple< OtherTs... > &other) const
 
template<typename... OtherTs>
requires ((sizeof...(Ts) == sizeof...(OtherTs)) && (std::totally_ordered<Ts> && ...))
KOKKOS_INLINE_FUNCTION bool operator== (const Tuple< OtherTs... > &other) const
 
Tupleoperator= (const Tuple< Ts... > &other)=default
 
Tupleoperator= (Tuple< Ts... > &&other)=default
 
 Tuple (const Tuple< Ts... > &t)=default
 
 Tuple (Tuple< Ts... > &&t)=default
 
template<typename... CtorTs>
requires (std::constructible_from<Ts, CtorTs> && ...)
KOKKOS_INLINE_FUNCTION Tuple (CtorTs &&... args)
 

Static Public Attributes

static constexpr std::size_t dim = sizeof...(Ts)
 
static constexpr std::size_t size = sizeof...(Ts)
 

Detailed Description

template<typename... Ts>
class ippl::Tuple< Ts >

Generic tuple class with various operations.

Template Parameters
TsTypes of elements in the Tuple.

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