UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RangeView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5
6namespace uLang {
7template <typename TFirst, typename TLast>
9{
12
14 : First()
15 , Last()
16 {}
17
18 template <typename TRange>
19 explicit TRangeView(TRange&& Arg)
20 : TRangeView(Arg.begin(), Arg.end())
21 {}
22
27
28 TFirst begin() const
29 {
30 return First;
31 }
32
33 TLast end() const
34 {
35 return Last;
36 }
37
38 bool IsEmpty() const
39 {
40 return First == Last;
41 }
42
43 int32_t Num() const
44 {
45 return static_cast<int32_t>(Last - First);
46 }
47
48 template <typename TArg>
49 decltype(auto) operator[](TArg&& Arg)
50 {
51 return First[uLang::ForwardArg<decltype(Arg)>(Arg)];
52 }
53
54 template <typename TArg>
55 decltype(auto) operator[](TArg&& Arg) const
56 {
57 return First[uLang::ForwardArg<decltype(Arg)>(Arg)];
58 }
59};
60
61template <typename T>
62TRangeView(T&& Arg) -> TRangeView<decltype(Arg.begin()), decltype(Arg.end())>;
63
64template <typename TFirst, typename TLast>
66{
67 return Range.begin();
68}
69
70template <typename TFirst, typename TLast>
72{
73 return Range.end();
74}
75
76template <typename T>
78{
79 return {&Arg, &Arg + 1};
80}
81}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Range.h:50
Definition VVMEngineEnvironment.h:23
TRangeView< T *, T * > SingletonRangeView(T &Arg)
Definition RangeView.h:77
Definition RangeView.h:9
TFirst begin() const
Definition RangeView.h:28
TRangeView(TRange &&Arg)
Definition RangeView.h:19
int32_t Num() const
Definition RangeView.h:43
TRangeView()
Definition RangeView.h:13
TFirst First
Definition RangeView.h:10
TRangeView(TFirst InFirst, TLast InLast)
Definition RangeView.h:23
bool IsEmpty() const
Definition RangeView.h:38
TLast end() const
Definition RangeView.h:33
TLast Last
Definition RangeView.h:11