From f96c000b9e146a62c5712571a5f86ab4ed3a7d26 Mon Sep 17 00:00:00 2001 From: _Redstone_c_ Date: Thu, 17 Nov 2022 20:57:54 +0800 Subject: [PATCH] refactor(*): make the template class concept indistinguishable from cv-qualified --- Redcraft.Utility/Source/Public/Templates/Any.h | 2 +- .../Source/Public/Templates/Function.h | 6 +++--- .../Source/Public/Templates/Optional.h | 2 +- .../Source/Public/Templates/ReferenceWrapper.h | 2 +- .../Source/Public/Templates/Tuple.h | 18 +++++++++--------- .../Source/Public/Templates/Variant.h | 14 +++++++------- .../Public/TypeTraits/InPlaceSpecialization.h | 4 ++-- 7 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Redcraft.Utility/Source/Public/Templates/Any.h b/Redcraft.Utility/Source/Public/Templates/Any.h index 91b644f..01ca9c5 100644 --- a/Redcraft.Utility/Source/Public/Templates/Any.h +++ b/Redcraft.Utility/Source/Public/Templates/Any.h @@ -501,7 +501,7 @@ template struct TIsTAny> : FTr NAMESPACE_PRIVATE_END template -concept CTAny = NAMESPACE_PRIVATE::TIsTAny::Value; +concept CTAny = NAMESPACE_PRIVATE::TIsTAny>::Value; using FAny = TAny<>; diff --git a/Redcraft.Utility/Source/Public/Templates/Function.h b/Redcraft.Utility/Source/Public/Templates/Function.h index cd8391c..2a53dbf 100644 --- a/Redcraft.Utility/Source/Public/Templates/Function.h +++ b/Redcraft.Utility/Source/Public/Templates/Function.h @@ -35,9 +35,9 @@ template struct TIsTUniqueFunction> : FTrue { } NAMESPACE_PRIVATE_END -template concept CTFunctionRef = NAMESPACE_PRIVATE::TIsTFunctionRef::Value; -template concept CTFunction = NAMESPACE_PRIVATE::TIsTFunction::Value; -template concept CTUniqueFunction = NAMESPACE_PRIVATE::TIsTUniqueFunction::Value; +template concept CTFunctionRef = NAMESPACE_PRIVATE::TIsTFunctionRef>::Value; +template concept CTFunction = NAMESPACE_PRIVATE::TIsTFunction>::Value; +template concept CTUniqueFunction = NAMESPACE_PRIVATE::TIsTUniqueFunction>::Value; NAMESPACE_PRIVATE_BEGIN diff --git a/Redcraft.Utility/Source/Public/Templates/Optional.h b/Redcraft.Utility/Source/Public/Templates/Optional.h index 7deb2f6..fe4d9b6 100644 --- a/Redcraft.Utility/Source/Public/Templates/Optional.h +++ b/Redcraft.Utility/Source/Public/Templates/Optional.h @@ -309,7 +309,7 @@ template struct TIsTOptional> : FTrue { }; NAMESPACE_PRIVATE_END -template concept CTOptional = NAMESPACE_PRIVATE::TIsTOptional::Value; +template concept CTOptional = NAMESPACE_PRIVATE::TIsTOptional>::Value; NAMESPACE_MODULE_END(Utility) NAMESPACE_MODULE_END(Redcraft) diff --git a/Redcraft.Utility/Source/Public/Templates/ReferenceWrapper.h b/Redcraft.Utility/Source/Public/Templates/ReferenceWrapper.h index 6087b57..3aa98d6 100644 --- a/Redcraft.Utility/Source/Public/Templates/ReferenceWrapper.h +++ b/Redcraft.Utility/Source/Public/Templates/ReferenceWrapper.h @@ -116,7 +116,7 @@ template struct TUnwrapRefDecayImpl { using Type = typename TUnwrap NAMESPACE_PRIVATE_END template -concept CTReferenceWrapper = NAMESPACE_PRIVATE::TIsTReferenceWrapperImpl::Value; +concept CTReferenceWrapper = NAMESPACE_PRIVATE::TIsTReferenceWrapperImpl>::Value; template using TUnwrapReference = typename NAMESPACE_PRIVATE::TUnwrapReferenceImpl::Type; diff --git a/Redcraft.Utility/Source/Public/Templates/Tuple.h b/Redcraft.Utility/Source/Public/Templates/Tuple.h index 31d3f73..6ecacd1 100644 --- a/Redcraft.Utility/Source/Public/Templates/Tuple.h +++ b/Redcraft.Utility/Source/Public/Templates/Tuple.h @@ -289,16 +289,16 @@ public: NAMESPACE_PRIVATE_END template -concept CTTuple = NAMESPACE_PRIVATE::TIsTTuple::Value; +concept CTTuple = NAMESPACE_PRIVATE::TIsTTuple>::Value; -template -inline constexpr size_t TTupleArity = NAMESPACE_PRIVATE::TTupleArityImpl::Value; +template +inline constexpr size_t TTupleArity = NAMESPACE_PRIVATE::TTupleArityImpl::Value; -template -inline constexpr size_t TTupleIndex = NAMESPACE_PRIVATE::TTupleIndexImpl::Value; +template +inline constexpr size_t TTupleIndex = NAMESPACE_PRIVATE::TTupleIndexImpl::Value; -template -using TTupleElement = typename NAMESPACE_PRIVATE::TTupleElementImpl::Type; +template +using TTupleElement = typename NAMESPACE_PRIVATE::TTupleElementImpl::Type; template class TTuple : public NAMESPACE_PRIVATE::TTupleImpl, Ts...> @@ -607,10 +607,10 @@ constexpr TCommonComparisonCategory...> return NAMESPACE_PRIVATE::TTupleThreeWay>::F(LHS, RHS); } -template requires (CInvocable) +template constexpr void VisitTuple(F&& Func) { } -template +template requires (CTTuple> && (true && ... && CTTuple>)) constexpr void VisitTuple(F&& Func, FirstTupleType&& FirstTuple, TupleTypes&&... Tuples) { NAMESPACE_PRIVATE::TTupleVisitImpl>>> diff --git a/Redcraft.Utility/Source/Public/Templates/Variant.h b/Redcraft.Utility/Source/Public/Templates/Variant.h index 1650ecb..53a5ef6 100644 --- a/Redcraft.Utility/Source/Public/Templates/Variant.h +++ b/Redcraft.Utility/Source/Public/Templates/Variant.h @@ -137,16 +137,16 @@ struct TVariantSelectedType NAMESPACE_PRIVATE_END template -concept CTVariant = NAMESPACE_PRIVATE::TIsTVariant::Value; +concept CTVariant = NAMESPACE_PRIVATE::TIsTVariant>::Value; -template -inline constexpr size_t TVariantNum = NAMESPACE_PRIVATE::TVariantNumImpl::Value; +template +inline constexpr size_t TVariantNum = NAMESPACE_PRIVATE::TVariantNumImpl::Value; -template -inline constexpr size_t TVariantIndex = NAMESPACE_PRIVATE::TVariantIndexImpl::Value; +template +inline constexpr size_t TVariantIndex = NAMESPACE_PRIVATE::TVariantIndexImpl::Value; -template -using TVariantAlternative = typename NAMESPACE_PRIVATE::TVariantAlternativeImpl::Type; +template +using TVariantAlternative = typename NAMESPACE_PRIVATE::TVariantAlternativeImpl::Type; template requires (sizeof...(Ts) > 0 && (true && ... && CDestructible)) class TVariant diff --git a/Redcraft.Utility/Source/Public/TypeTraits/InPlaceSpecialization.h b/Redcraft.Utility/Source/Public/TypeTraits/InPlaceSpecialization.h index 10a0bac..2139679 100644 --- a/Redcraft.Utility/Source/Public/TypeTraits/InPlaceSpecialization.h +++ b/Redcraft.Utility/Source/Public/TypeTraits/InPlaceSpecialization.h @@ -17,8 +17,8 @@ template struct TIsTInPlaceIndex> : FTrue { }; NAMESPACE_PRIVATE_END -template concept CTInPlaceType = NAMESPACE_PRIVATE::TIsTInPlaceType::Value; -template concept CTInPlaceIndex = NAMESPACE_PRIVATE::TIsTInPlaceIndex::Value; +template concept CTInPlaceType = NAMESPACE_PRIVATE::TIsTInPlaceType>::Value; +template concept CTInPlaceIndex = NAMESPACE_PRIVATE::TIsTInPlaceIndex>::Value; NAMESPACE_MODULE_END(Utility) NAMESPACE_MODULE_END(Redcraft)