refactor(templates): remove unnecessary or harmful FORCEINLINE
This commit is contained in:
parent
b6c76ceadc
commit
6cee8a1185
@ -36,7 +36,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr FAny(FInvalid) : FAny() { }
|
||||
|
||||
FORCEINLINE FAny(const FAny& InValue)
|
||||
FAny(const FAny& InValue)
|
||||
: TypeInfo(InValue.TypeInfo)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
@ -61,7 +61,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE FAny(FAny&& InValue)
|
||||
FAny(FAny&& InValue)
|
||||
: TypeInfo(InValue.TypeInfo)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
@ -102,7 +102,7 @@ public:
|
||||
Destroy();
|
||||
}
|
||||
|
||||
FORCEINLINE FAny& operator=(const FAny& InValue)
|
||||
FAny& operator=(const FAny& InValue)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
|
||||
@ -159,7 +159,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
FORCEINLINE FAny& operator=(FAny&& InValue)
|
||||
FAny& operator=(FAny&& InValue)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
|
||||
@ -276,7 +276,7 @@ public:
|
||||
Invalidate();
|
||||
}
|
||||
|
||||
FORCEINLINE void Swap(FAny& InValue)
|
||||
void Swap(FAny& InValue)
|
||||
{
|
||||
if (!IsValid() && !InValue.IsValid()) return;
|
||||
|
||||
@ -472,7 +472,7 @@ private:
|
||||
}
|
||||
|
||||
template <typename T, typename... Ts>
|
||||
FORCEINLINE void EmplaceImpl(Ts&&... Args)
|
||||
void EmplaceImpl(Ts&&... Args)
|
||||
{
|
||||
using DecayedType = TDecay<T>;
|
||||
|
||||
@ -505,7 +505,7 @@ private:
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE void Destroy()
|
||||
void Destroy()
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
|
@ -103,7 +103,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr TFunctionStorage() = default;
|
||||
|
||||
FORCEINLINE TFunctionStorage(const TFunctionStorage& InValue) requires (!bIsUnique)
|
||||
TFunctionStorage(const TFunctionStorage& InValue) requires (!bIsUnique)
|
||||
: RTTI(InValue.RTTI)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
@ -128,7 +128,7 @@ public:
|
||||
}
|
||||
}
|
||||
|
||||
FORCEINLINE TFunctionStorage(TFunctionStorage&& InValue)
|
||||
TFunctionStorage(TFunctionStorage&& InValue)
|
||||
: RTTI(InValue.RTTI)
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
@ -158,7 +158,7 @@ public:
|
||||
Destroy();
|
||||
}
|
||||
|
||||
FORCEINLINE TFunctionStorage& operator=(const TFunctionStorage& InValue) requires (!bIsUnique)
|
||||
TFunctionStorage& operator=(const TFunctionStorage& InValue) requires (!bIsUnique)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
|
||||
@ -195,7 +195,7 @@ public:
|
||||
return *this;
|
||||
}
|
||||
|
||||
FORCEINLINE TFunctionStorage& operator=(TFunctionStorage&& InValue)
|
||||
TFunctionStorage& operator=(TFunctionStorage&& InValue)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
|
||||
@ -238,7 +238,7 @@ public:
|
||||
FORCEINLINE constexpr bool IsValid() const { return RTTI != 0; }
|
||||
|
||||
// Use Invalidate() to invalidate the storage or use Emplace<T>() to emplace a new object after destruction.
|
||||
FORCEINLINE void Destroy()
|
||||
void Destroy()
|
||||
{
|
||||
if (!IsValid()) return;
|
||||
|
||||
@ -263,7 +263,7 @@ public:
|
||||
|
||||
// Make sure you call this function after you have destroyed the held object using Destroy().
|
||||
template <typename T, typename... Ts>
|
||||
FORCEINLINE void Emplace(uintptr InCallable, Ts&&... Args)
|
||||
void Emplace(uintptr InCallable, Ts&&... Args)
|
||||
{
|
||||
Callable = InCallable;
|
||||
|
||||
@ -295,7 +295,7 @@ public:
|
||||
|
||||
}
|
||||
|
||||
FORCEINLINE void Swap(TFunctionStorage& InValue)
|
||||
void Swap(TFunctionStorage& InValue)
|
||||
{
|
||||
if (!IsValid() && !InValue.IsValid()) return;
|
||||
|
||||
|
@ -96,7 +96,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr TOptional& operator=(const TOptional& InValue) requires (CTriviallyCopyConstructible<OptionalType> && CTriviallyCopyAssignable<OptionalType>) = default;
|
||||
|
||||
FORCEINLINE constexpr TOptional& operator=(const TOptional& InValue) requires (CCopyConstructible<OptionalType> && CCopyAssignable<OptionalType>
|
||||
constexpr TOptional& operator=(const TOptional& InValue) requires (CCopyConstructible<OptionalType> && CCopyAssignable<OptionalType>
|
||||
&& !CTriviallyCopyConstructible<OptionalType> && !CTriviallyCopyAssignable<OptionalType>)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
@ -119,7 +119,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr TOptional& operator=(TOptional&& InValue) requires (CTriviallyMoveConstructible<OptionalType> && CTriviallyMoveAssignable<OptionalType>) = default;
|
||||
|
||||
FORCEINLINE constexpr TOptional& operator=(TOptional&& InValue) requires (CMoveConstructible<OptionalType> && CMoveAssignable<OptionalType>
|
||||
constexpr TOptional& operator=(TOptional&& InValue) requires (CMoveConstructible<OptionalType> && CMoveAssignable<OptionalType>
|
||||
&& !CTriviallyMoveConstructible<OptionalType> && !CTriviallyMoveAssignable<OptionalType>)
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
@ -142,7 +142,7 @@ public:
|
||||
|
||||
template <typename T = OptionalType> requires (CConstructibleFrom<OptionalType, const T&>
|
||||
&& CAssignableFrom<OptionalType&, const T&> && NAMESPACE_PRIVATE::CTOptionalAllowUnwrappable<T, OptionalType>)
|
||||
FORCEINLINE constexpr TOptional& operator=(const TOptional<T>& InValue)
|
||||
constexpr TOptional& operator=(const TOptional<T>& InValue)
|
||||
{
|
||||
if (!InValue.IsValid())
|
||||
{
|
||||
@ -162,7 +162,7 @@ public:
|
||||
|
||||
template <typename T = OptionalType> requires (CConstructibleFrom<OptionalType, T&&>
|
||||
&& CAssignableFrom<OptionalType&, T&&> && NAMESPACE_PRIVATE::CTOptionalAllowUnwrappable<T, OptionalType>)
|
||||
FORCEINLINE constexpr TOptional& operator=(TOptional<T>&& InValue)
|
||||
constexpr TOptional& operator=(TOptional<T>&& InValue)
|
||||
{
|
||||
if (!InValue.IsValid())
|
||||
{
|
||||
@ -241,7 +241,7 @@ public:
|
||||
}
|
||||
|
||||
template <typename T> requires (CMoveConstructible<OptionalType> && CSwappable<OptionalType>)
|
||||
FORCEINLINE constexpr void Swap(TOptional& InValue)
|
||||
constexpr void Swap(TOptional& InValue)
|
||||
{
|
||||
if (!IsValid() && !InValue.IsValid()) return;
|
||||
|
||||
|
@ -133,7 +133,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr TVariant& operator=(const TVariant& InValue) requires (true && ... && (CTriviallyCopyConstructible<Ts> && CTriviallyCopyAssignable<Ts>)) = default;
|
||||
|
||||
FORCEINLINE constexpr TVariant& operator=(const TVariant& InValue) requires ((true && ... && (CCopyConstructible<Ts> && CCopyAssignable<Ts>))
|
||||
constexpr TVariant& operator=(const TVariant& InValue) requires ((true && ... && (CCopyConstructible<Ts> && CCopyAssignable<Ts>))
|
||||
&& !(true && ... && (CTriviallyCopyConstructible<Ts> && CTriviallyCopyAssignable<Ts>)))
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
@ -157,7 +157,7 @@ public:
|
||||
|
||||
FORCEINLINE constexpr TVariant& operator=(TVariant&& InValue) requires (true && ... && (CTriviallyMoveConstructible<Ts> && CTriviallyMoveAssignable<Ts>)) = default;
|
||||
|
||||
FORCEINLINE constexpr TVariant& operator=(TVariant&& InValue) requires ((true && ... && (CMoveConstructible<Ts> && CMoveAssignable<Ts>))
|
||||
constexpr TVariant& operator=(TVariant&& InValue) requires ((true && ... && (CMoveConstructible<Ts> && CMoveAssignable<Ts>))
|
||||
&& !(true && ... && (CTriviallyMoveConstructible<Ts> && CTriviallyMoveAssignable<Ts>)))
|
||||
{
|
||||
if (&InValue == this) return *this;
|
||||
@ -263,7 +263,7 @@ public:
|
||||
return HashCombine(GetTypeHash(GetIndex()), HashImpl[GetIndex()](&Value));
|
||||
}
|
||||
|
||||
FORCEINLINE constexpr void Swap(TVariant& InValue) requires (true && ... && (CMoveConstructible<Ts> && CSwappable<Ts>))
|
||||
constexpr void Swap(TVariant& InValue) requires (true && ... && (CMoveConstructible<Ts> && CSwappable<Ts>))
|
||||
{
|
||||
if (!IsValid() && !InValue.IsValid()) return;
|
||||
|
||||
@ -317,7 +317,7 @@ private:
|
||||
TAlignedUnion<1, Ts...> Value;
|
||||
uint8 TypeIndex;
|
||||
|
||||
friend FORCEINLINE constexpr bool operator==(const TVariant& LHS, const TVariant& RHS) requires (true && ... && CEqualityComparable<Ts>)
|
||||
friend constexpr bool operator==(const TVariant& LHS, const TVariant& RHS) requires (true && ... && CEqualityComparable<Ts>)
|
||||
{
|
||||
if (LHS.GetIndex() != RHS.GetIndex()) return false;
|
||||
if (LHS.IsValid() == false) return true;
|
||||
@ -328,7 +328,7 @@ private:
|
||||
return CompareImpl[LHS.GetIndex()](&LHS.Value, &RHS.Value);
|
||||
}
|
||||
|
||||
friend FORCEINLINE constexpr partial_ordering operator<=>(const TVariant& LHS, const TVariant& RHS) requires (true && ... && CSynthThreeWayComparable<Ts>)
|
||||
friend constexpr partial_ordering operator<=>(const TVariant& LHS, const TVariant& RHS) requires (true && ... && CSynthThreeWayComparable<Ts>)
|
||||
{
|
||||
if (LHS.GetIndex() != RHS.GetIndex()) return partial_ordering::unordered;
|
||||
if (LHS.IsValid() == false) return partial_ordering::equivalent;
|
||||
@ -485,7 +485,7 @@ NAMESPACE_PRIVATE_END
|
||||
|
||||
template <typename F, typename FirstVariantType, typename... VariantTypes>
|
||||
requires (CTVariant<TRemoveReference<FirstVariantType>> && (true && ... && CTVariant<TRemoveReference<VariantTypes>>))
|
||||
FORCEINLINE constexpr decltype(auto) Visit(F&& Func, FirstVariantType&& FirstVariant, VariantTypes&&... Variants)
|
||||
constexpr decltype(auto) Visit(F&& Func, FirstVariantType&& FirstVariant, VariantTypes&&... Variants)
|
||||
{
|
||||
checkf((true && ... && Variants.IsValid()), TEXT("It is an error to call Visit() on an wrong TVariant. Please either check IsValid()."));
|
||||
return NAMESPACE_PRIVATE::TVariantVisitImpl<F, FirstVariantType, VariantTypes...>::Do(Forward<F>(Func), Forward<FirstVariantType>(FirstVariant), Forward<VariantTypes>(Variants)...);
|
||||
@ -493,7 +493,7 @@ FORCEINLINE constexpr decltype(auto) Visit(F&& Func, FirstVariantType&& FirstVar
|
||||
|
||||
template <typename Ret, typename F, typename FirstVariantType, typename... VariantTypes>
|
||||
requires (CTVariant<TRemoveReference<FirstVariantType>> && (true && ... && CTVariant<TRemoveReference<VariantTypes>>))
|
||||
FORCEINLINE constexpr Ret Visit(F&& Func, FirstVariantType&& FirstVariant, VariantTypes&&... Variants)
|
||||
constexpr Ret Visit(F&& Func, FirstVariantType&& FirstVariant, VariantTypes&&... Variants)
|
||||
{
|
||||
checkf((true && ... && Variants.IsValid()), TEXT("It is an error to call Visit() on an wrong TVariant. Please either check IsValid()."));
|
||||
return NAMESPACE_PRIVATE::TVariantVisitImpl<F, FirstVariantType, VariantTypes...>::template Result<Ret>::Do(Forward<F>(Func), Forward<FirstVariantType>(FirstVariant), Forward<VariantTypes>(Variants)...);
|
||||
|
Loading…
Reference in New Issue
Block a user