16 static constexpr bool Value =
true;
22 static constexpr bool Value =
true;
32 struct FCopyOnWriteContents final
34 FCopyOnWriteContents() =
default;
41 mutable int32 CachedHash = 0;
67 struct FCopyOnWrite final
77 const_cast<FCopyOnWrite*
>(
this)->SetIfNull();
78 return Payload->String;
85 if (!Payload.IsUnique())
91 Payload->ResetCachedHash();
94 return Payload->String;
99 const_cast<FCopyOnWrite*
>(
this)->SetIfNull();
100 return Payload->Hash();
108 inline bool SetIfNull()
124 FCopyOnWrite Payload;
190 return S.Payload.Hash();
206 Payload.Write() += Str;
221 Lhs.Payload.Write() += Rhs;
225 template <
typename... Types>
228 return FUtf8String::Printf(
Fmt, Args...);
235 const AutoRTFM::EContextStatus Status = AutoRTFM::Close([&] {
Closed =
Open; });
236 ensure(AutoRTFM::EContextStatus::OnTrack == Status);
#define ensure( InExpression)
Definition AssertionMacros.h:464
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
typename TElementType< T >::Type TElementType_T
Definition ElementType.h:57
#define UE_REQUIRES(...)
Definition Requires.h:86
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
Definition Archive.h:1208
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition VVMNativeString.h:31
FNativeString & operator+=(const ANSICHAR *Str)
Definition VVMNativeString.h:204
FNativeString & operator=(const FNativeString &)=default
UE_FORCEINLINE_HINT friend bool operator!=(const FNativeString &Lhs, const FNativeString &Rhs)
Definition VVMNativeString.h:177
UE_FORCEINLINE_HINT bool IsEmpty() const
Definition VVMNativeString.h:169
FNativeString(const FNativeString &)=default
FNativeString & operator+=(CharRangeType &&Str)
Definition VVMNativeString.h:199
static UE_FORCEINLINE_HINT FNativeString Printf(UE::Core::TCheckedFormatString< FUtf8String::FmtCharType, Types... > Fmt, Types... Args)
Definition VVMNativeString.h:226
void Reset(int32 NewReservedSize=0)
Definition VVMNativeString.h:193
FNativeString & operator=(CharRangeType &&Range)
Definition VVMNativeString.h:152
friend UE_FORCEINLINE_HINT int32 GetNum(const FNativeString &InString)
Definition VVMNativeString.h:161
friend FNativeString operator+(FNativeString &&Lhs, const ANSICHAR *Rhs)
Definition VVMNativeString.h:219
friend FNativeString operator+(FNativeString &&Lhs, CharRangeType &&Rhs)
Definition VVMNativeString.h:214
UE_FORCEINLINE_HINT FNativeString(FUtf8String &&InString)
Definition VVMNativeString.h:136
UE_FORCEINLINE_HINT ElementType & operator[](int32 Index) UE_LIFETIMEBOUND
Definition VVMNativeString.h:163
friend UE_FORCEINLINE_HINT FArchive & operator<<(FArchive &Ar, FNativeString &S)
Definition VVMNativeString.h:231
FNativeString(FNativeString &&)=default
friend UE_FORCEINLINE_HINT int32 GetTypeHash(const FNativeString &S)
Definition VVMNativeString.h:188
UE_FORCEINLINE_HINT bool Equals(const FNativeString &Other) const
Definition VVMNativeString.h:183
UE_FORCEINLINE_HINT const ElementType * operator*() const UE_LIFETIMEBOUND
Definition VVMNativeString.h:166
UE_FORCEINLINE_HINT FNativeString(CharRangeType &&Range)
Definition VVMNativeString.h:143
UE_FORCEINLINE_HINT friend bool operator==(const FNativeString &Lhs, const FNativeString &Rhs)
Definition VVMNativeString.h:171
friend UE_FORCEINLINE_HINT const ElementType * GetData(const FNativeString &InString)
Definition VVMNativeString.h:159
FNativeString & operator=(FNativeString &&)=default
friend UE_FORCEINLINE_HINT ElementType * GetData(FNativeString &InString)
Definition VVMNativeString.h:158
static void AutoRTFMAssignFromOpenToClosed(FNativeString &Closed, const FNativeString &Open)
Definition VVMNativeString.h:233
FUtf8String::ElementType ElementType
Definition VVMNativeString.h:121
UE_FORCEINLINE_HINT const ElementType & operator[](int32 Index) const UE_LIFETIMEBOUND
Definition VVMNativeString.h:164
UE_FORCEINLINE_HINT FNativeString(const ANSICHAR *Str)
Definition VVMNativeString.h:133
UE_FORCEINLINE_HINT int Len() const
Definition VVMNativeString.h:168
@ CaseSensitive
Definition CString.h:23
U16 Index
Definition radfft.cpp:71
static uint32 StrCrc32Len(const CharType *Data, int32 Length, uint32 CRC=0)
Definition Crc.h:67
Definition IsContiguousContainer.h:16
static constexpr bool Value
Definition IsContiguousContainer.h:20
Definition UnrealTypeTraits.h:172