UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FieldArrayView.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "Containers/Array.h"
7
16template<typename InElementType>
18{
19public:
21 using SizeType = int32;
22
27 : ElementArray(InElementArray)
28 , ArrayOffset(InArrayOffset)
29 , ArrayNum(InArrayNum)
30 {
31 checkf(InArrayOffset + InArrayNum <= ElementArray.Num(), TEXT("Field array size out of bounds: %i from an array of size %i"), InArrayOffset + InArrayNum, ElementArray.Num());
32 }
33
40 {
41 return ElementArray.GetData() + ArrayOffset;
42 }
43
49 FORCEINLINE static constexpr size_t GetTypeSize()
50 {
51 return sizeof(ElementType);
52 }
53
57 FORCEINLINE static constexpr size_t GetTypeAlignment()
58 {
59 return alignof(ElementType);
60 }
61
67 {
68 checkSlow(ArrayNum >= 0);
69 }
70
77 {
79
80 checkf((Index >= 0) & (Index < ArrayNum), TEXT("Array index out of bounds: %i from an array of size %i"), Index, ArrayNum); // & for one branch
81 }
82
91 {
92 return (Index >= 0) && (Index < ArrayNum);
93 }
94
101 bool IsEmpty() const
102 {
103 return ArrayNum == 0;
104 }
105
112 {
113 return ArrayNum;
114 }
115
122 {
124 return ElementArray[ArrayOffset + Index];
125 }
126
131 FORCEINLINE ElementType* begin() const { return GetData(); }
132 FORCEINLINE ElementType* end() const { return GetData() + Num(); }
133
134private:
135
136 TArray<InElementType>& ElementArray;
137 SizeType ArrayOffset;
138 SizeType ArrayNum;
139};
#define FORCEINLINE
Definition AndroidPlatform.h:140
#define checkSlow(expr)
Definition AssertionMacros.h:332
#define checkf(expr, format,...)
Definition AssertionMacros.h:315
#define TEXT(x)
Definition Platform.h:1272
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType * GetData() UE_LIFETIMEBOUND
Definition Array.h:1027
Definition FieldArrayView.h:18
int32 SizeType
Definition FieldArrayView.h:21
static FORCEINLINE constexpr size_t GetTypeSize()
Definition FieldArrayView.h:49
InElementType ElementType
Definition FieldArrayView.h:20
bool IsEmpty() const
Definition FieldArrayView.h:101
FORCEINLINE ElementType * end() const
Definition FieldArrayView.h:132
FORCEINLINE ElementType * begin() const
Definition FieldArrayView.h:131
static FORCEINLINE constexpr size_t GetTypeAlignment()
Definition FieldArrayView.h:57
FORCEINLINE ElementType & operator[](SizeType Index) const
Definition FieldArrayView.h:121
FORCEINLINE void RangeCheck(SizeType Index) const
Definition FieldArrayView.h:76
TFieldArrayView(TArray< ElementType > &InElementArray, const SizeType InArrayOffset, const SizeType InArrayNum)
Definition FieldArrayView.h:26
FORCEINLINE SizeType Num() const
Definition FieldArrayView.h:111
FORCEINLINE bool IsValidIndex(SizeType Index) const
Definition FieldArrayView.h:90
FORCEINLINE ElementType * GetData() const
Definition FieldArrayView.h:39
FORCEINLINE void CheckInvariants() const
Definition FieldArrayView.h:66
U16 Index
Definition radfft.cpp:71