MCRO
C++23 utilities for Unreal Engine.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Mcro::Tuples Namespace Reference

Templating utilities for manipulating TTuples. More...

Namespaces

namespace  Detail
 

Data Structures

struct  TSkip_Struct
 
struct  TTake_Struct
 
struct  TTrimEnd_Struct
 
struct  TTypeAt_Struct
 
struct  TTypeAt_Struct< I, T >
 

Concepts

concept  CStdTupleLike
 
concept  CRangeV3TupleLike
 
concept  CStdPairLike
 
concept  CRangeV3PairLike
 
concept  CTupleConvertsToArgs
 
concept  CUnrealTuple
 
concept  CStdOrRangeV3Tuple
 
concept  CTuple
 

Typedefs

template<CTuple T>
using TIndexSequenceForTuple = std::make_index_sequence<GetSize<T>()>
 
template<size_t I, CTuple T>
using TTypeAt = typename TTypeAt_Struct<I, T>::Type
 
template<size_t I, CTuple T>
using TTypeAtDecayed = std::decay_t<typename TTypeAt_Struct<I, T>::Type>
 
template<typename Tuple , size_t... Indices>
using TComposeFrom = TTuple<typename TTupleElement<Indices, Tuple>::Type...>
 Compose one tuple out of the elements of another tuple based on the input index parameter pack.
 
template<size_t Count, typename Tuple >
using TSkip = typename TSkip_Struct<Count, Tuple>::Type
 Skip the first Count elements of the input tuple.
 
template<size_t Count, typename Tuple >
using TTrimEnd = typename TTrimEnd_Struct<Count, Tuple>::Type
 Disregard the last Count elements of the input tuple.
 
template<size_t Count, typename Tuple >
using TTake = typename TTake_Struct<Count, Tuple>::Type
 Take only the first Count elements of the input tuple.
 

Functions

template<size_t I, CStdTupleLike T>
decltype(auto) GetItem (T &&tuple)
 
template<CStdOrRangeV3Tuple T>
consteval size_t GetSize ()
 
template<typename T , typename... Rest>
TTuple< T, Rest... > operator>> (T &&left, TTuple< Rest... > const &right)
 Prepend a value to a tuple.
 
template<typename T , typename... Rest>
TTuple< Rest..., T > operator<< (TTuple< Rest... > const &left, T &&right)
 Append a value to a tuple.
 

Variables

template<typename >
constexpr bool TIsStdArray = false
 
template<typename >
constexpr bool TIsStdSubRange = false
 
template<typename >
constexpr bool TIsRangeV3SubRange = false
 
template<typename >
constexpr bool TIsStdTuple = false
 
template<typename >
constexpr bool TIsStdPair = false
 
template<typename >
constexpr bool TIsRangeV3Tuple = false
 
template<typename >
constexpr bool TIsRangeV3Pair = false
 

Detailed Description

Templating utilities for manipulating TTuples.

Typedef Documentation

◆ TComposeFrom

template<typename Tuple , size_t... Indices>
using Mcro::Tuples::TComposeFrom = TTuple<typename TTupleElement<Indices, Tuple>::Type...>

Compose one tuple out of the elements of another tuple based on the input index parameter pack.

Definition at line 161 of file Tuples.h.

◆ TIndexSequenceForTuple

template<CTuple T>
using Mcro::Tuples::TIndexSequenceForTuple = std::make_index_sequence<GetSize<T>()>

Definition at line 134 of file Tuples.h.

◆ TSkip

template<size_t Count, typename Tuple >
using Mcro::Tuples::TSkip = typename TSkip_Struct<Count, Tuple>::Type

Skip the first Count elements of the input tuple.

Definition at line 177 of file Tuples.h.

◆ TTake

template<size_t Count, typename Tuple >
using Mcro::Tuples::TTake = typename TTake_Struct<Count, Tuple>::Type

Take only the first Count elements of the input tuple.

Definition at line 209 of file Tuples.h.

◆ TTrimEnd

template<size_t Count, typename Tuple >
using Mcro::Tuples::TTrimEnd = typename TTrimEnd_Struct<Count, Tuple>::Type

Disregard the last Count elements of the input tuple.

Definition at line 193 of file Tuples.h.

◆ TTypeAt

template<size_t I, CTuple T>
using Mcro::Tuples::TTypeAt = typename TTypeAt_Struct<I, T>::Type

Definition at line 152 of file Tuples.h.

◆ TTypeAtDecayed

template<size_t I, CTuple T>
using Mcro::Tuples::TTypeAtDecayed = std::decay_t<typename TTypeAt_Struct<I, T>::Type>

Definition at line 155 of file Tuples.h.

Function Documentation

◆ GetItem()

template<size_t I, CStdTupleLike T>
decltype(auto) Mcro::Tuples::GetItem ( T && tuple)

Definition at line 104 of file Tuples.h.

◆ GetSize()

template<CStdOrRangeV3Tuple T>
size_t Mcro::Tuples::GetSize ( )
consteval

Definition at line 122 of file Tuples.h.

◆ operator<<()

template<typename T , typename... Rest>
TTuple< Rest..., T > Mcro::Tuples::operator<< ( TTuple< Rest... > const & left,
T && right )

Append a value to a tuple.

Definition at line 232 of file Tuples.h.

◆ operator>>()

template<typename T , typename... Rest>
TTuple< T, Rest... > Mcro::Tuples::operator>> ( T && left,
TTuple< Rest... > const & right )

Prepend a value to a tuple.

Definition at line 232 of file Tuples.h.

Variable Documentation

◆ TIsRangeV3Pair

template<typename >
bool Mcro::Tuples::TIsRangeV3Pair< ranges::common_pair< Args... > > = false
constexpr

Definition at line 63 of file Tuples.h.

◆ TIsRangeV3SubRange

template<typename >
bool Mcro::Tuples::TIsRangeV3SubRange = false
constexpr

Definition at line 39 of file Tuples.h.

◆ TIsRangeV3Tuple

template<typename >
bool Mcro::Tuples::TIsRangeV3Tuple< ranges::common_tuple< Args... > > = false
constexpr

Definition at line 57 of file Tuples.h.

◆ TIsStdArray

template<typename >
bool Mcro::Tuples::TIsStdArray = false
constexpr

Definition at line 27 of file Tuples.h.

◆ TIsStdPair

template<typename >
bool Mcro::Tuples::TIsStdPair< std::pair< Args... > > = false
constexpr

Definition at line 51 of file Tuples.h.

◆ TIsStdSubRange

template<typename >
bool Mcro::Tuples::TIsStdSubRange = false
constexpr

Definition at line 33 of file Tuples.h.

◆ TIsStdTuple

template<typename >
bool Mcro::Tuples::TIsStdTuple< std::tuple< Args... > > = false
constexpr

Definition at line 45 of file Tuples.h.