SPH
Public Types | Public Member Functions | List of all members
Detail::TupleValue< TIndex, TValue > Class Template Reference

#include <Tuple.h>

Public Types

using ReturnType = std::conditional_t< std::is_rvalue_reference< TValue >::value, TValue &&, TValue & >
 

Public Member Functions

constexpr TupleValue ()=default
 
template<typename T >
constexpr INLINE TupleValue (T &&value)
 
template<typename T >
constexpr INLINE TupleValueoperator= (T &&t)
 
constexpr INLINE ReturnType get ()
 Return r-value reference if TValue is an r-value reference, otherwise returns l-value reference. More...
 
constexpr INLINE const TValue & get () const
 
constexpr INLINE TValue && forward ()
 

Detailed Description

template<std::size_t TIndex, typename TValue>
class Detail::TupleValue< TIndex, TValue >

Definition at line 14 of file Tuple.h.

Member Typedef Documentation

◆ ReturnType

template<std::size_t TIndex, typename TValue >
using Detail::TupleValue< TIndex, TValue >::ReturnType = std::conditional_t<std::is_rvalue_reference<TValue>::value, TValue&&, TValue&>

Definition at line 30 of file Tuple.h.

Constructor & Destructor Documentation

◆ TupleValue() [1/2]

template<std::size_t TIndex, typename TValue >
constexpr Detail::TupleValue< TIndex, TValue >::TupleValue ( )
constexprdefault

◆ TupleValue() [2/2]

template<std::size_t TIndex, typename TValue >
template<typename T >
constexpr INLINE Detail::TupleValue< TIndex, TValue >::TupleValue ( T &&  value)
inlineconstexpr

Definition at line 21 of file Tuple.h.

Member Function Documentation

◆ forward()

template<std::size_t TIndex, typename TValue >
constexpr INLINE TValue&& Detail::TupleValue< TIndex, TValue >::forward ( )
inlineconstexpr

'Forwards' the value out of tuple, i.e. returns l-value reference for l-values and r-value reference otherwise.

Definition at line 46 of file Tuple.h.

◆ get() [1/2]

template<std::size_t TIndex, typename TValue >
constexpr INLINE ReturnType Detail::TupleValue< TIndex, TValue >::get ( )
inlineconstexpr

Return r-value reference if TValue is an r-value reference, otherwise returns l-value reference.

Definition at line 33 of file Tuple.h.

◆ get() [2/2]

template<std::size_t TIndex, typename TValue >
constexpr INLINE const TValue& Detail::TupleValue< TIndex, TValue >::get ( ) const
inlineconstexpr

Return const r-value reference if TValue is an r-value reference, otherwise returns const l-value reference.

Todo:
Does this make any sense? What's the point of const r-value reference?

Definition at line 40 of file Tuple.h.

◆ operator=()

template<std::size_t TIndex, typename TValue >
template<typename T >
constexpr INLINE TupleValue& Detail::TupleValue< TIndex, TValue >::operator= ( T &&  t)
inlineconstexpr

Definition at line 25 of file Tuple.h.


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