UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BufferUtil.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
11namespace BufferUtil
12{
13
14
23 template<typename T>
24 int CountValid(const TArray<T>& Data, const TFunction<bool(T)>& Predicate, int MaxIndex = -1, int StartIndex = 0)
25 {
26 int StopIndex = (MaxIndex == -1) ? Data.Num() : MaxIndex;
27 int NumValid = 0;
28 for (int i = StartIndex; i < StopIndex; ++i)
29 {
30 if (Predicate(Data[i]) == true)
31 {
32 NumValid++;
33 }
34 }
35 return NumValid;
36 }
37
38
48 template<typename T>
49 int FilterInPlace(TArray<T>& Data, const TFunction<bool(T)>& Predicate, int MaxIndex = -1, int StartIndex = 0)
50 {
51 int StopIndex = (MaxIndex == -1) ? Data.Num() : MaxIndex;
52 int StoreIndex = StartIndex;
53 for (int i = StartIndex; i < StopIndex; ++i)
54 {
55 if (Predicate(Data[i]) == true)
56 {
57 Data[StoreIndex++] = Data[i];
58 }
59 }
60 return StoreIndex;
61 }
62
63
64
70 template<typename T, typename EnumerableType>
72 {
73 for ( T value : Enumerable )
74 {
75 AppendTo.Add(value);
76 }
77 }
78
79}
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Array.h:670
UE_NODEBUG UE_FORCEINLINE_HINT SizeType Add(ElementType &&Item)
Definition Array.h:2696
Definition AndroidPlatformMisc.h:14
Definition BufferUtil.h:12
void AppendElements(TArray< T > &AppendTo, EnumerableType Enumerable)
Definition BufferUtil.h:71
int CountValid(const TArray< T > &Data, const TFunction< bool(T)> &Predicate, int MaxIndex=-1, int StartIndex=0)
Definition BufferUtil.h:24
int FilterInPlace(TArray< T > &Data, const TFunction< bool(T)> &Predicate, int MaxIndex=-1, int StartIndex=0)
Definition BufferUtil.h:49