UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
GuardValueAccessors.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreTypes.h"
7
15template <typename AssignedType>
17{
19
20 [[nodiscard]] explicit TGuardValueAccessors(TFunctionRef<AssignedType()> Getter, TFunction<void(const AssignedType&)>&& InSetter, const AssignedType& NewValue)
21 : Setter(MoveTemp(InSetter))
22 , OriginalValue(Getter())
23 {
24 Setter(NewValue);
25 }
26
28 {
29 Setter(OriginalValue);
30 }
31
38 {
39 return OriginalValue;
40 }
41private:
42 TFunction<void(const AssignedType&)> Setter;
43 AssignedType OriginalValue;
44};
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define UE_NONCOPYABLE(TypeName)
Definition CoreMiscDefines.h:457
#define UE_FORCEINLINE_HINT
Definition Platform.h:723
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition AssetRegistryState.h:50
Definition AndroidPlatformMisc.h:14
Definition GuardValueAccessors.h:17
TGuardValueAccessors(TFunctionRef< AssignedType()> Getter, TFunction< void(const AssignedType &)> &&InSetter, const AssignedType &NewValue)
Definition GuardValueAccessors.h:20
~TGuardValueAccessors()
Definition GuardValueAccessors.h:27
UE_FORCEINLINE_HINT const AssignedType & GetOriginalValue() const
Definition GuardValueAccessors.h:37