MCRO
C++23 utilities for Unreal Engine.
Loading...
Searching...
No Matches
Views.h File Reference
#include "CoreMinimal.h"
#include "Mcro/Range/Iterators.h"
#include "Mcro/LibraryIncludes/Start.h"
#include "range/v3/all.hpp"
#include "Mcro/LibraryIncludes/End.h"

Go to the source code of this file.

Namespaces

namespace  Mcro
 
namespace  Mcro::Range
 

Functions

template<typename T >
decltype(auto) Mcro::Range::Literal (std::initializer_list< T > &&input)
 Make an initializer list compatible with range API's.
 
template<CRangeMember... Ranges>
auto Mcro::Range::Zip (Ranges &&...right)
 pipeable version of ranges::views::zip
 
template<CRangeMember... Ranges>
auto Mcro::Range::Concat (Ranges &&...right)
 pipeable version of ranges::views::concat
 
template<CRangeMember Input>
bool Mcro::Range::IsEmpty (Input &&range)
 Check if range is empty.
 
FORCEINLINE auto Mcro::Range::IsEmpty ()
 Check if range is empty.
 
template<CRangeMember Input, typename Value = TRangeElementType<Input>>
decltype(auto) Mcro::Range::First (Input &&range, Value &&def)
 Get's the first element of a range or return a provided default value. Same as *r.begin() but safer.
 
FORCEINLINE auto Mcro::Range::First (auto &&def)
 Get's the first element of a range or return a provided default value. Same as *r.begin() but safer.
 
template<CRangeMember Input, typename Value = TRangeElementType<Input>>
decltype(auto) Mcro::Range::FirstOrDefault (Input &&range)
 Get's the first element of a range or return the default value for the element type. Same as *r.begin() but safer.
 
FORCEINLINE auto Mcro::Range::FirstOrDefault ()
 Get's the first element of a range or return the default value for the element type. Same as *r.begin() but safer.
 
template<CRangeMember Left, CRangeMember Right>
requires CCoreHalfEqualityComparable<TRangeElementType<Left>, TRangeElementType<Right>>
bool Mcro::Range::MatchOrdered (Left &&left, Right &&right, bool matchOnlyBeginning=false)
 Return true if input ranges match their values and their order.
 
template<CRangeMember Left, typename Value >
requires CCoreHalfEqualityComparable<Value, TRangeElementType<Left>>
bool Mcro::Range::MatchOrdered (Left &&left, std::initializer_list< Value > &&right, bool matchOnlyBeginning=false)
 
template<CRangeMember Right>
auto Mcro::Range::MatchOrdered (Right &&right, bool matchOnlyBeginning=false)
 Return true if input ranges match their values and their order.
 
template<typename Value >
auto Mcro::Range::MatchOrdered (std::initializer_list< Value > &&right, bool matchOnlyBeginning=false)
 
template<CFunctionLike Predicate>
auto Mcro::Range::AllOf (Predicate &&pred)
 
template<CFunctionLike Predicate>
auto Mcro::Range::AnyOf (Predicate &&pred)
 
FORCEINLINE auto Mcro::Range::FilterValid ()
 
template<CFunctionLike Transform, CRangeOfTuplesCompatibleWithFunction< Transform > Left>
auto Mcro::Range::TransformTuple (Left &&left, Transform &&tr)
 Transform a range of tuples with structured binding function arguments, so range transformations shouldn't bother with the actual type of the tuple.
 
template<CFunctionLike Transform>
auto Mcro::Range::TransformTuple (Transform &&tr)
 Transform a range of tuples with structured binding function arguments, so range transformations shouldn't bother with the actual type of the tuple.
 
template<CFunctionLike Predicate, CRangeOfTuplesCompatibleWithFunction< Predicate > Left>
auto Mcro::Range::FilterTuple (Left &&left, Predicate &&predicate)
 Filter a range of tuples with structured binding function arguments, so filter predicates shouldn't bother with the actual type of the tuple.
 
template<CFunctionLike Predicate>
auto Mcro::Range::FilterTuple (Predicate &&predicate)
 Filter a range of tuples with structured binding function arguments, so filter predicates shouldn't bother with the actual type of the tuple.
 
template<size_t ItemIndex, CRangeOfTuples Range>
auto Mcro::Range::SelectTupleItem (Range &&left)
 
template<size_t ItemIndex>
auto Mcro::Range::SelectTupleItem ()
 
FORCEINLINE auto Mcro::Range::GetKeys ()
 
FORCEINLINE auto Mcro::Range::GetValues ()
 

Detailed Description

Author
David Mórász
Date
2025

Definition in file Views.h.