refactor(*): remove FTypeInfo and replace it with the native std::type_info

This commit is contained in:
2022-05-12 23:36:32 +08:00
parent db5ed179c6
commit eeef55e9b4
11 changed files with 229 additions and 528 deletions

View File

@ -13,7 +13,7 @@ NAMESPACE_MODULE_BEGIN(Utility)
NAMESPACE_BEGIN(Memory)
template <typename ElementType>
requires (TIsDefaultConstructible<ElementType>::Value || TIsZeroConstructible<ElementType>::Value)
requires TIsDefaultConstructible<ElementType>::Value
FORCEINLINE void DefaultConstruct(ElementType* Address, size_t Count = 1)
{
if constexpr (TIsZeroConstructible<ElementType>::Value)
@ -33,7 +33,7 @@ FORCEINLINE void DefaultConstruct(ElementType* Address, size_t Count = 1)
}
template <typename DestinationElementType, typename SourceElementType>
requires (TIsConstructible<DestinationElementType, const SourceElementType&>::Value || TIsBitwiseConstructible<DestinationElementType, const SourceElementType&>::Value)
requires TIsConstructible<DestinationElementType, const SourceElementType&>::Value
FORCEINLINE void Construct(DestinationElementType* Destination, const SourceElementType* Source, size_t Count = 1)
{
if constexpr (TIsBitwiseConstructible<DestinationElementType, const SourceElementType>::Value)
@ -53,7 +53,7 @@ FORCEINLINE void Construct(DestinationElementType* Destination, const SourceElem
}
template <typename ElementType>
requires (TIsCopyConstructible<ElementType>::Value)
requires TIsCopyConstructible<ElementType>::Value
FORCEINLINE void CopyConstruct(ElementType* Destination, const ElementType* Source, size_t Count = 1)
{
if constexpr (TIsTriviallyCopyConstructible<ElementType>::Value)
@ -73,7 +73,7 @@ FORCEINLINE void CopyConstruct(ElementType* Destination, const ElementType* Sour
}
template <typename ElementType>
requires (TIsMoveConstructible<ElementType>::Value)
requires TIsMoveConstructible<ElementType>::Value
FORCEINLINE void MoveConstruct(ElementType* Destination, ElementType* Source, size_t Count = 1)
{
if constexpr (TIsTriviallyMoveConstructible<ElementType>::Value)
@ -93,7 +93,7 @@ FORCEINLINE void MoveConstruct(ElementType* Destination, ElementType* Source, si
}
template <typename DestinationElementType, typename SourceElementType>
requires ((TIsConstructible<DestinationElementType, SourceElementType&&>::Value && TIsDestructible<SourceElementType>::Value) || TIsBitwiseRelocatable<DestinationElementType, SourceElementType>::Value)
requires TIsConstructible<DestinationElementType, SourceElementType&&>::Value && TIsDestructible<SourceElementType>::Value
FORCEINLINE void RelocateConstruct(DestinationElementType* Destination, SourceElementType* Source, size_t Count = 1)
{
if constexpr (TIsBitwiseRelocatable<DestinationElementType, SourceElementType>::Value)
@ -115,7 +115,7 @@ FORCEINLINE void RelocateConstruct(DestinationElementType* Destination, SourceEl
}
template <typename ElementType>
requires (TIsDestructible<ElementType>::Value)
requires TIsDestructible<ElementType>::Value
FORCEINLINE void Destruct(ElementType* Element, size_t Count = 1)
{
if constexpr (!TIsTriviallyDestructible<ElementType>::Value)
@ -132,7 +132,7 @@ FORCEINLINE void Destruct(ElementType* Element, size_t Count = 1)
}
template <typename ElementType>
requires (TIsCopyAssignable<ElementType>::Value)
requires TIsCopyAssignable<ElementType>::Value
FORCEINLINE void CopyAssign(ElementType* Destination, const ElementType* Source, size_t Count = 1)
{
if constexpr (TIsTriviallyCopyAssignable<ElementType>::Value)
@ -152,7 +152,7 @@ FORCEINLINE void CopyAssign(ElementType* Destination, const ElementType* Source,
}
template <typename ElementType>
requires (TIsMoveAssignable<ElementType>::Value)
requires TIsMoveAssignable<ElementType>::Value
FORCEINLINE void MoveAssign(ElementType* Destination, ElementType* Source, size_t Count = 1)
{
if constexpr (TIsTriviallyCopyConstructible<ElementType>::Value)
@ -172,7 +172,7 @@ FORCEINLINE void MoveAssign(ElementType* Destination, ElementType* Source, size_
}
template <typename ElementType>
requires (CEqualityComparable<ElementType> || TIsBitwiseComparable<ElementType>::Value)
requires CEqualityComparable<ElementType>
FORCEINLINE bool Compare(const ElementType* LHS, const ElementType* RHS, size_t Count = 1)
{
if constexpr (TIsBitwiseComparable<ElementType>::Value)