SPH
Public Member Functions | Protected Member Functions | List of all members
Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... > Class Template Reference

#include <Tuple.h>

Inheritance diagram for Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >:
Detail::TupleValue< TIndices, TArgs >

Public Member Functions

constexpr TupleImpl ()=default
 
template<typename... Ts, typename = std::enable_if_t<AllTrue<std::is_constructible<TArgs, Ts>::value...>::value>>
constexpr INLINE TupleImpl (Ts &&... args)
 
template<typename... Ts>
constexpr INLINE TupleImpl (const TupleImpl< Ts... > &other)
 
template<typename... Ts>
constexpr INLINE TupleImpl (TupleImpl< Ts... > &&other)
 
template<std::size_t TIndex>
constexpr decltype(auto) INLINE get ()
 
template<std::size_t TIndex>
constexpr decltype(auto) INLINE get () const
 
template<std::size_t TIndex>
constexpr decltype(auto) INLINE forward ()
 

Protected Member Functions

template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void copyAssign (const TupleImpl< Ts... > &other, std::index_sequence< TIndex, TIdxs... >)
 
template<typename... Ts>
INLINE void copyAssign (const TupleImpl< Ts... > &UNUSED(other), std::index_sequence<>)
 
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void copyAssign (TupleImpl< Ts... > &other, std::index_sequence< TIndex, TIdxs... >)
 
template<typename... Ts>
INLINE void copyAssign (TupleImpl< Ts... > &UNUSED(other), std::index_sequence<>)
 
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void moveAssign (TupleImpl< Ts... > &&other, std::index_sequence< TIndex, TIdxs... >)
 
template<typename... Ts>
INLINE void moveAssign (const TupleImpl< Ts... > &UNUSED(other), std::index_sequence<>)
 
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE bool isEqual (const TupleImpl< Ts... > &other, std::index_sequence< TIndex, TIdxs... >) const
 
template<typename... Ts>
INLINE bool isEqual (const TupleImpl< Ts... > &UNUSED(other), std::index_sequence<>) const
 

Detailed Description

template<std::size_t... TIndices, typename... TArgs>
class Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >

Definition at line 55 of file Tuple.h.

Constructor & Destructor Documentation

◆ TupleImpl() [1/4]

template<std::size_t... TIndices, typename... TArgs>
constexpr Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::TupleImpl ( )
constexprdefault

◆ TupleImpl() [2/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts, typename = std::enable_if_t<AllTrue<std::is_constructible<TArgs, Ts>::value...>::value>>
constexpr INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::TupleImpl ( Ts &&...  args)
inlineconstexpr

Definition at line 67 of file Tuple.h.

◆ TupleImpl() [3/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
constexpr INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::TupleImpl ( const TupleImpl< Ts... > &  other)
inlineconstexpr

Definition at line 71 of file Tuple.h.

◆ TupleImpl() [4/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
constexpr INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::TupleImpl ( TupleImpl< Ts... > &&  other)
inlineconstexpr

Definition at line 75 of file Tuple.h.

Member Function Documentation

◆ copyAssign() [1/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::copyAssign ( const TupleImpl< Ts... > &  other,
std::index_sequence< TIndex, TIdxs... >   
)
inlineprotected

Definition at line 95 of file Tuple.h.

◆ copyAssign() [2/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::copyAssign ( const TupleImpl< Ts... > &  UNUSEDother,
std::index_sequence<>   
)
inlineprotected

Definition at line 101 of file Tuple.h.

◆ copyAssign() [3/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::copyAssign ( TupleImpl< Ts... > &  other,
std::index_sequence< TIndex, TIdxs... >   
)
inlineprotected

Definition at line 104 of file Tuple.h.

◆ copyAssign() [4/4]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::copyAssign ( TupleImpl< Ts... > &  UNUSEDother,
std::index_sequence<>   
)
inlineprotected

Definition at line 110 of file Tuple.h.

◆ forward()

template<std::size_t... TIndices, typename... TArgs>
template<std::size_t TIndex>
constexpr decltype(auto) INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::forward ( )
inlineconstexpr

Definition at line 89 of file Tuple.h.

◆ get() [1/2]

template<std::size_t... TIndices, typename... TArgs>
template<std::size_t TIndex>
constexpr decltype(auto) INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::get ( )
inlineconstexpr

Definition at line 79 of file Tuple.h.

◆ get() [2/2]

template<std::size_t... TIndices, typename... TArgs>
template<std::size_t TIndex>
constexpr decltype(auto) INLINE Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::get ( ) const
inlineconstexpr

Definition at line 84 of file Tuple.h.

◆ isEqual() [1/2]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE bool Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::isEqual ( const TupleImpl< Ts... > &  other,
std::index_sequence< TIndex, TIdxs... >   
) const
inlineprotected

Definition at line 122 of file Tuple.h.

◆ isEqual() [2/2]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
INLINE bool Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::isEqual ( const TupleImpl< Ts... > &  UNUSEDother,
std::index_sequence<>   
) const
inlineprotected

Definition at line 128 of file Tuple.h.

◆ moveAssign() [1/2]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::moveAssign ( const TupleImpl< Ts... > &  UNUSEDother,
std::index_sequence<>   
)
inlineprotected

Definition at line 119 of file Tuple.h.

◆ moveAssign() [2/2]

template<std::size_t... TIndices, typename... TArgs>
template<typename... Ts, std::size_t TIndex, std::size_t... TIdxs>
INLINE void Detail::TupleImpl< std::index_sequence< TIndices... >, TArgs... >::moveAssign ( TupleImpl< Ts... > &&  other,
std::index_sequence< TIndex, TIdxs... >   
)
inlineprotected

Definition at line 113 of file Tuple.h.


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