UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
ModularFeatureManager.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6
7namespace uLang
8{
16template<class FeatureType>
18{
19public:
20 template<typename... Args_t>
22
24
25 // Prevent copying/assignment to properly control registration lifetime (since this unregisters on destruction)
28
30 : _ModularFeatureRef(Move(Other._ModularFeatureRef))
31 {
32 }
33
35 {
36 _ModularFeatureRef = Move(Other._ModularFeatureRef);
37 return *this;
38 }
39
40 // Conversion methods
41 ULANG_FORCEINLINE operator TSRef<FeatureType>() const { return _ModularFeatureRef; }
42 ULANG_FORCEINLINE operator FeatureType*() const { return (FeatureType*)_ModularFeatureRef; }
43 ULANG_FORCEINLINE FeatureType& operator*() const { return *_ModularFeatureRef; }
44 ULANG_FORCEINLINE FeatureType* operator->() const { return _ModularFeatureRef.operator->(); }
45
46 //---------------------------------------------------------------------------------------
47
48 ULANG_FORCEINLINE TSRef<FeatureType>& ToSharedRef() { return _ModularFeatureRef; }
49 ULANG_FORCEINLINE const TSRef<FeatureType>& ToSharedRef() const { return _ModularFeatureRef; }
50
51private:
52 TSRef<FeatureType> _ModularFeatureRef;
53};
54
55/* ModularFeatureManager API
56 ******************************************************************************/
57
61template<class FeatureType>
63
71template<class FeatureType>
73
80template<class FeatureType>
82
83/* TModularFeatureIterator
84 ******************************************************************************/
85
89template<class FeatureType>
91{
92public:
93 explicit operator bool() const;
94 bool operator!() const;
95
96 TSRef<FeatureType> Get() const;
97 FeatureType& operator*() const;
98 FeatureType* operator->() const;
99
100 void operator++();
101
102private:
103 int32_t _Index = 0;
104};
105
106} // namespace uLang
107
108// Template definitions
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
const bool
Definition NetworkReplayStreaming.h:178
#define ULANG_FORCEINLINE
Definition Common.h:188
Definition ModularFeatureManager.h:91
FeatureType * operator->() const
Definition ModularFeatureManager.inl:166
bool operator!() const
Definition ModularFeatureManager.inl:145
TSRef< FeatureType > Get() const
Definition ModularFeatureManager.inl:151
FeatureType & operator*() const
Definition ModularFeatureManager.inl:160
void operator++()
Definition ModularFeatureManager.inl:172
Definition ModularFeatureManager.h:18
ULANG_FORCEINLINE FeatureType & operator*() const
Definition ModularFeatureManager.h:43
ULANG_FORCEINLINE FeatureType * operator->() const
Definition ModularFeatureManager.h:44
ULANG_FORCEINLINE TModularFeatureRegHandle & operator=(TModularFeatureRegHandle &&Other)
Definition ModularFeatureManager.h:34
TModularFeatureRegHandle & operator=(const TModularFeatureRegHandle &)=delete
TModularFeatureRegHandle(const TModularFeatureRegHandle &)=delete
ULANG_FORCEINLINE const TSRef< FeatureType > & ToSharedRef() const
Definition ModularFeatureManager.h:49
ULANG_FORCEINLINE TModularFeatureRegHandle(TModularFeatureRegHandle &&Other)
Definition ModularFeatureManager.h:29
ULANG_FORCEINLINE TSRef< FeatureType > & ToSharedRef()
Definition ModularFeatureManager.h:48
ULANG_FORCEINLINE ~TModularFeatureRegHandle()
Definition ModularFeatureManager.inl:80
Definition SharedPointer.h:77
Definition VVMEngineEnvironment.h:23
TSRefArray< FeatureType > GetModularFeaturesOfType()
Definition ModularFeatureManager.inl:125
TOptional< TSRef< FeatureType > > GetModularFeature(const int32_t Index=0)
Definition ModularFeatureManager.inl:110
ULANG_FORCEINLINE TRemoveReference< T >::Type && Move(T &&Obj)
Definition References.h:86
int32_t GetModularFeatureCount()
Definition ModularFeatureManager.inl:104
U16 Index
Definition radfft.cpp:71
Definition Optional.h:131