![]() |
MCRO
C++23 utilities for Unreal Engine.
|
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...
#include <Iterators.h>
Public Types | |
using | value_type = TIteratorElementType<Iterator> |
using | iterator_category = TIteratorCategory<Iterator> |
using | difference_type = TIteratorDifference<Iterator> |
using | pointer = value_type* |
using | reference = value_type& |
Public Member Functions | |
TExtendedIterator () | |
template<CConvertibleToDecayed< Iterator > InputIterator> | |
TExtendedIterator (InputIterator &&input) | |
TExtendedIterator (TExtendedIterator const &other) | |
TExtendedIterator (TExtendedIterator &&other) noexcept | |
auto | operator= (TExtendedIterator other) -> TExtendedIterator & |
auto | operator++ () -> TExtendedIterator & |
auto | operator++ (int) -> TExtendedIterator |
template<CBasicBidirectionalIterator = Iterator> | |
auto | operator-- () -> TExtendedIterator & |
template<CBasicBidirectionalIterator = Iterator> | |
auto | operator-- (int) -> TExtendedIterator |
template<CHasMemberAccessOperator = Iterator> | |
auto | operator-> () |
template<CHasMemberAccessOperator = Iterator> | |
auto | operator-> () const |
auto | operator* () -> value_type const & |
auto | operator* () const -> value_type const & |
auto | operator+= (int steps) -> TExtendedIterator & |
auto | operator+ (int steps) const -> TExtendedIterator |
template<CBasicBidirectionalIterator = Iterator> | |
auto | operator-= (int steps) -> TExtendedIterator & |
template<CBasicBidirectionalIterator = Iterator> | |
auto | operator- (int steps) const -> TExtendedIterator |
Friends | |
auto | operator- (TExtendedIterator const &l, TExtendedIterator const &r) -> difference_type |
bool | operator== (TExtendedIterator const &l, TExtendedIterator const &r) |
bool | operator!= (TExtendedIterator const &l, TExtendedIterator const &r) |
template<CIteratorComparable = Iterator> | |
auto | operator<=> (TExtendedIterator const &l, TExtendedIterator const &r) |
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.
TExtendedIterator makes a copy of the Unreal iterator it wraps for internal storage, which should not have significant side effects, but emphasis is on SHOULD.
Definition at line 278 of file Iterators.h.
using Mcro::Range::TExtendedIterator< Iterator, Policy >::difference_type = TIteratorDifference<Iterator> |
Definition at line 284 of file Iterators.h.
using Mcro::Range::TExtendedIterator< Iterator, Policy >::iterator_category = TIteratorCategory<Iterator> |
Definition at line 283 of file Iterators.h.
using Mcro::Range::TExtendedIterator< Iterator, Policy >::pointer = value_type* |
Definition at line 285 of file Iterators.h.
using Mcro::Range::TExtendedIterator< Iterator, Policy >::reference = value_type& |
Definition at line 286 of file Iterators.h.
using Mcro::Range::TExtendedIterator< Iterator, Policy >::value_type = TIteratorElementType<Iterator> |
Definition at line 282 of file Iterators.h.
|
inline |
Definition at line 288 of file Iterators.h.
|
inline |
Definition at line 291 of file Iterators.h.
|
inline |
Definition at line 293 of file Iterators.h.
|
inlinenoexcept |
Definition at line 296 of file Iterators.h.
|
inline |
Definition at line 340 of file Iterators.h.
|
inline |
Definition at line 347 of file Iterators.h.
|
inline |
Definition at line 359 of file Iterators.h.
|
inline |
Definition at line 306 of file Iterators.h.
|
inline |
Definition at line 312 of file Iterators.h.
|
inline |
Definition at line 354 of file Iterators.h.
|
inline |
Definition at line 373 of file Iterators.h.
|
inline |
Definition at line 320 of file Iterators.h.
|
inline |
Definition at line 327 of file Iterators.h.
|
inline |
Definition at line 367 of file Iterators.h.
|
inline |
Definition at line 335 of file Iterators.h.
|
inline |
Definition at line 338 of file Iterators.h.
|
inline |
Definition at line 299 of file Iterators.h.
|
friend |
Definition at line 390 of file Iterators.h.
|
friend |
Definition at line 380 of file Iterators.h.
|
friend |
Definition at line 396 of file Iterators.h.
|
friend |
Definition at line 385 of file Iterators.h.