refactor(typetraits): replaces template class type traits with concepts for TypeTraits/Miscellaneous.h
This commit is contained in:
@ -17,19 +17,19 @@ public:
|
||||
|
||||
using Type = ReferencedType;
|
||||
|
||||
template <typename T = ReferencedType> requires TIsConvertible<T, ReferencedType&>::Value
|
||||
template <typename T = ReferencedType> requires CConvertibleTo<T, ReferencedType&>
|
||||
constexpr TReferenceWrapper(T&& Object) : Pointer(AddressOf(Forward<T>(Object))) { }
|
||||
|
||||
TReferenceWrapper(const TReferenceWrapper&) = default;
|
||||
|
||||
template <typename T = ReferencedType> requires TIsConvertible<T&, ReferencedType&>::Value
|
||||
template <typename T = ReferencedType> requires CConvertibleTo<T&, ReferencedType&>
|
||||
constexpr TReferenceWrapper(const TReferenceWrapper<T>& InValue)
|
||||
: Pointer(InValue.Pointer)
|
||||
{ }
|
||||
|
||||
TReferenceWrapper& operator=(const TReferenceWrapper&) = default;
|
||||
|
||||
template <typename T = ReferencedType> requires TIsConvertible<T&, ReferencedType&>::Value
|
||||
template <typename T = ReferencedType> requires CConvertibleTo<T&, ReferencedType&>
|
||||
constexpr TReferenceWrapper& operator=(const TReferenceWrapper<T>& InValue)
|
||||
{
|
||||
Pointer = InValue.Pointer;
|
||||
@ -120,10 +120,10 @@ private:
|
||||
|| CConstructible<OptionalType, const TOptional<T>& >
|
||||
|| CConstructible<OptionalType, TOptional<T>&&>
|
||||
|| CConstructible<OptionalType, const TOptional<T>&&>
|
||||
|| TIsConvertible< TOptional<T>&, OptionalType>::Value
|
||||
|| TIsConvertible<const TOptional<T>&, OptionalType>::Value
|
||||
|| TIsConvertible< TOptional<T>&&, OptionalType>::Value
|
||||
|| TIsConvertible<const TOptional<T>&&, OptionalType>::Value
|
||||
|| CConvertibleTo< TOptional<T>&, OptionalType>
|
||||
|| CConvertibleTo<const TOptional<T>&, OptionalType>
|
||||
|| CConvertibleTo< TOptional<T>&&, OptionalType>
|
||||
|| CConvertibleTo<const TOptional<T>&&, OptionalType>
|
||||
|| CAssignable<OptionalType&, TOptional<T>& >
|
||||
|| CAssignable<OptionalType&, const TOptional<T>& >
|
||||
|| CAssignable<OptionalType&, TOptional<T>&&>
|
||||
@ -144,8 +144,8 @@ public:
|
||||
{ }
|
||||
|
||||
template <typename T = OptionalType> requires CConstructible<OptionalType, T&&>
|
||||
&& (!TIsSame<typename TRemoveCVRef<T>::Type, FInPlace>::Value) && (!TIsSame<typename TRemoveCVRef<T>::Type, TOptional>::Value)
|
||||
constexpr explicit (!TIsConvertible<T&&, OptionalType>::Value) TOptional(T&& InValue)
|
||||
&& (!CSameAs<typename TRemoveCVRef<T>::Type, FInPlace>) && (!CSameAs<typename TRemoveCVRef<T>::Type, TOptional>)
|
||||
constexpr explicit (!CConvertibleTo<T&&, OptionalType>) TOptional(T&& InValue)
|
||||
: TOptional(InPlace, Forward<T>(InValue))
|
||||
{ }
|
||||
|
||||
@ -153,7 +153,7 @@ public:
|
||||
TOptional(TOptional&& InValue) = default;
|
||||
|
||||
template <typename T = OptionalType> requires CConstructible<OptionalType, const T&> && TAllowUnwrapping<T>::Value
|
||||
constexpr explicit (!TIsConvertible<const T&, OptionalType>::Value) TOptional(const TOptional<T>& InValue)
|
||||
constexpr explicit (!CConvertibleTo<const T&, OptionalType>) TOptional(const TOptional<T>& InValue)
|
||||
: Reference(InValue.Reference)
|
||||
{ }
|
||||
|
||||
|
Reference in New Issue
Block a user