45 template <
typename...
ArgTypes>
requires((
sizeof...(ArgTypes) > 0 &&
sizeof...(
ArgTypes) <= NumElements) && UE::Core::Private::TCanBeConvertedToFromAll_V<InElementType, ArgTypes...>)
79 return NumElements == 0;
122template <
typename InElementType, u
int32 NumElements, u
int32 Alignment>
requires(Alignment !=
uint32(-1))
125 UE_STATIC_ASSERT_WARN(
false,
"TStaticArray's alignment parameter has been deprecated in 5.7 - you can use TAlignedElement to wrap InElementType.");
142 template <
typename...
ArgTypes>
requires((
sizeof...(ArgTypes) > 0 &&
sizeof...(
ArgTypes) <= NumElements) && UE::Core::Private::TCanBeConvertedToFromAll_V<InElementType, ArgTypes...>)
178 template <
typename StorageElementType,
bool bReverse = false>
179 struct FRangedForIterator
188 if constexpr (bReverse)
200 if constexpr (bReverse)
237template <
typename InElementType, u
int32 NumElements>
241 for(
uint32 ElementIndex = 0;ElementIndex < NumElements;++ElementIndex)
243 Result[ElementIndex] =
InValue;
248template <
typename ElementType, u
int32 NumElements, u
int32 Alignment>
255template <
typename ElementType, u
int32 NumElements, u
int32 Alignment>
266template <
typename ElementType, u
int32 NumElements, u
int32 Alignment>
270 for (
const ElementType& Element :
Array)
#define checkSlow(expr)
Definition AssertionMacros.h:332
EPerElement
Definition CoreMiscDefines.h:163
@ PerElement
Definition CoreMiscDefines.h:163
#define UE_STATIC_ASSERT_WARN(bExpression, Message)
Definition CoreMiscDefines.h:431
EInPlace
Definition CoreMiscDefines.h:162
@ InPlace
Definition CoreMiscDefines.h:162
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename UE4IntegerSequence_Private::TMakeIntegerSequenceImpl< T, N >::Type TMakeIntegerSequence
Definition IntegerSequence.h:31
constexpr TStaticArray< InElementType, NumElements > MakeUniformStaticArray(typename TCallTraits< InElementType >::ParamType InValue)
Definition StaticArray.h:238
FArchive & operator<<(FArchive &Ar, TStaticArray< ElementType, NumElements, Alignment > &StaticArray)
Definition StaticArray.h:256
uint32 GetTypeHash(const TStaticArray< ElementType, NumElements, Alignment > &Array)
Definition StaticArray.h:267
constexpr uint32 HashCombineFast(uint32 A, uint32 B)
Definition TypeHash.h:74
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Core.Build.cs:8
Definition Archive.h:1208
constexpr TStaticArray & operator=(const TStaticArray &Other)=default
FRangedForIterator< UE::Core::TAlignedElement< InElementType, Alignment >, true > RangedForReverseIteratorType
Definition StaticArray.h:222
UE_FORCEINLINE_HINT RangedForReverseIteratorType constexpr rbegin()
Definition StaticArray.h:230
constexpr TStaticArray(TStaticArray &&Other)=default
constexpr TStaticArray & operator=(TStaticArray< UE::Core::TAlignedElement< InElementType, Alignment >, NumElements > &&Other)
Definition StaticArray.h:153
FRangedForIterator< const UE::Core::TAlignedElement< InElementType, Alignment >, true > RangedForConstReverseIteratorType
Definition StaticArray.h:223
UE_FORCEINLINE_HINT RangedForConstIteratorType constexpr begin() const
Definition StaticArray.h:227
constexpr const InElementType & operator[](uint32 Index) const
Definition StaticArray.h:172
constexpr TStaticArray & operator=(TStaticArray &&Other)=default
UE_FORCEINLINE_HINT RangedForReverseIteratorType constexpr rend()
Definition StaticArray.h:232
UE_FORCEINLINE_HINT RangedForConstReverseIteratorType constexpr rbegin() const
Definition StaticArray.h:231
UE_FORCEINLINE_HINT RangedForIteratorType constexpr end()
Definition StaticArray.h:228
UE_FORCEINLINE_HINT RangedForConstReverseIteratorType constexpr rend() const
Definition StaticArray.h:233
constexpr TStaticArray(ArgTypes &&... Args)
Definition StaticArray.h:143
constexpr TStaticArray(EInPlace, ArgTypes &&... Args)
Definition StaticArray.h:136
constexpr InElementType & operator[](uint32 Index)
Definition StaticArray.h:166
UE_FORCEINLINE_HINT RangedForIteratorType constexpr begin()
Definition StaticArray.h:226
constexpr TStaticArray & operator=(const TStaticArray< UE::Core::TAlignedElement< InElementType, Alignment >, NumElements > &Other)
Definition StaticArray.h:159
FRangedForIterator< UE::Core::TAlignedElement< InElementType, Alignment > > RangedForIteratorType
Definition StaticArray.h:220
constexpr TStaticArray()=default
InElementType ElementType
Definition StaticArray.h:130
constexpr TStaticArray(const TStaticArray &Other)=default
FRangedForIterator< const UE::Core::TAlignedElement< InElementType, Alignment > > RangedForConstIteratorType
Definition StaticArray.h:221
UE_FORCEINLINE_HINT RangedForConstIteratorType constexpr end() const
Definition StaticArray.h:229
Definition StaticArray.h:26
constexpr TStaticArray & operator=(const TStaticArray &Other)=default
UE_REWRITE constexpr InElementType * end()
Definition StaticArray.h:101
UE_REWRITE constexpr InElementType * begin()
Definition StaticArray.h:99
friend class TStaticArray
Definition StaticArray.h:28
UE_REWRITE constexpr InElementType * GetData()
Definition StaticArray.h:89
UE_REWRITE constexpr TReversePointerIterator< InElementType > rbegin()
Definition StaticArray.h:103
constexpr TStaticArray(TStaticArray &&Other)=default
constexpr const InElementType & operator[](uint32 Index) const
Definition StaticArray.h:63
UE_REWRITE constexpr const InElementType * GetData() const
Definition StaticArray.h:94
constexpr TStaticArray & operator=(TStaticArray &&Other)=default
InElementType Elements[NumElements]
Definition StaticArray.h:33
UE_REWRITE constexpr TReversePointerIterator< const InElementType > rbegin() const
Definition StaticArray.h:104
UE_REWRITE constexpr int32 Num() const
Definition StaticArray.h:83
constexpr TStaticArray(ArgTypes &&... Args)
Definition StaticArray.h:46
constexpr TStaticArray(EInPlace, ArgTypes &&... Args)
Definition StaticArray.h:39
UE_REWRITE constexpr TReversePointerIterator< const InElementType > rend() const
Definition StaticArray.h:106
constexpr InElementType & operator[](uint32 Index)
Definition StaticArray.h:57
UE_REWRITE constexpr TReversePointerIterator< InElementType > rend()
Definition StaticArray.h:105
constexpr TStaticArray()=default
InElementType ElementType
Definition StaticArray.h:31
bool operator==(const TStaticArray &) const =default
UE_REWRITE constexpr const InElementType * end() const
Definition StaticArray.h:102
constexpr TStaticArray(const TStaticArray &Other)=default
constexpr bool IsEmpty() const
Definition StaticArray.h:77
UE_REWRITE constexpr const InElementType * begin() const
Definition StaticArray.h:100
implementation
Definition PlayInEditorLoadingScope.h:8
constexpr bool TCanBeConvertedToFromAll_V
Definition StaticArray.h:20
Definition AdvancedWidgetsModule.cpp:13
U16 Index
Definition radfft.cpp:71
TCallTraitsParamTypeHelper< T, PassByValue >::ParamType ParamType
Definition UnrealTypeTraits.h:275
Definition IntegerSequence.h:9
Definition IsContiguousContainer.h:16
static constexpr bool Value
Definition IsContiguousContainer.h:20
Definition ReverseIterate.h:13
constexpr FRangedForIterator(StorageElementType *InPtr)
Definition StaticArray.h:181
constexpr bool operator!=(const FRangedForIterator &B) const
Definition StaticArray.h:211
constexpr FRangedForIterator & operator++()
Definition StaticArray.h:198
constexpr std::conditional_t< std::is_const_v< StorageElementType >, const InElementType, InElementType > & operator*() const
Definition StaticArray.h:186
Definition AlignedElement.h:13