MCRO
C++23 utilities for Unreal Engine.
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages Concepts
Iterators.h File Reference
#include "CoreMinimal.h"
#include "Mcro/Concepts.h"
#include "Mcro/TypeName.h"
#include "Mcro/TextMacros.h"
#include "Mcro/SharedObjects.h"
#include "Mcro/Void.h"
#include "Mcro/Range/Concepts.h"

Go to the source code of this file.

Data Structures

struct  Mcro::Range::TIteratorJumpForward_Struct< T >
 
struct  Mcro::Range::TIteratorJumpForward_Struct< T >
 
struct  Mcro::Range::TIteratorJumpBackward_Struct< T >
 
struct  Mcro::Range::TIteratorJumpBackward_Struct< T >
 
struct  Mcro::Range::TIteratorDifference_Struct< T >
 
struct  Mcro::Range::TIteratorDifference_Struct< T >
 
struct  Mcro::Range::TIteratorCompare_Struct< T >
 
struct  Mcro::Range::TIteratorCompare_Struct< T >
 
struct  Mcro::Range::TIteratorComputeDistance_Struct< T >
 
struct  Mcro::Range::TIteratorComputeDistance_Struct< T >
 
struct  Mcro::Range::FExtendedIteratorPolicy
 Extra settings for TExtendedIterator wrapper. More...
 
struct  Mcro::Range::TExtendedIterator< Iterator, Policy >
 Unreal's own iterators are not STL compliant (they are only compatible with range-for loops) so they cannot be used with more advanced STL algorithms or other third-party libraries which may expect the full iterator interface compatibility. For that TExtendedIterator fills in the missing components and wraps Unreal iterators to be fully STL iterator compliant. More...
 
struct  Mcro::Range::FTempStringIterator
 Allows range-v3 and std::ranges to iterate over temporary string objects and keep the string alive during view and action operators. More...
 

Namespaces

namespace  Mcro
 
namespace  Mcro::Range
 

Macros

#define MCRO_RANGE_ALLOW_BASIC_ITERATOR_FEATURE_EMULATION   1
 Iterators which can only step one item at a time, and/or doesn't expose difference computation can have the jump and difference features emulated at the cost of expensive O(N) time operations. Turning this feature off ensures stricter policy about this when working with Unreal containers and range-v3.
 

Typedefs

template<typename T >
using Mcro::Range::TIteratorDifference = typename TIteratorDifference_Struct<T>::Type
 return a difference type for given iterator.
 

Variables

template<typename T >
constexpr TIteratorJumpForward_Struct< T > Mcro::Range::TIteratorJumpForward
 
template<typename T >
constexpr TIteratorJumpBackward_Struct< T > Mcro::Range::TIteratorJumpBackward
 
template<typename T >
constexpr TIteratorCompare_Struct< T > Mcro::Range::TIteratorCompare
 
template<typename T >
constexpr TIteratorComputeDistance_Struct< T > Mcro::Range::TIteratorComputeDistance
 

Detailed Description

Author
David Mórász
Date
2025

Definition in file Iterators.h.

Macro Definition Documentation

◆ MCRO_RANGE_ALLOW_BASIC_ITERATOR_FEATURE_EMULATION

#define MCRO_RANGE_ALLOW_BASIC_ITERATOR_FEATURE_EMULATION   1

Iterators which can only step one item at a time, and/or doesn't expose difference computation can have the jump and difference features emulated at the cost of expensive O(N) time operations. Turning this feature off ensures stricter policy about this when working with Unreal containers and range-v3.

When this flag is on, a runtime ensure is still triggered.

Definition at line 32 of file Iterators.h.