Introduce new traits constant for determining if type is a gadget

Do it in preparation for other changes around gadget type traits, for
porting qtdeclarative to the new API.

Change-Id: I91cd5aff81a678565cdf1b7e0b57f52bae8a1a80
Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
bb10
Mikolaj Boc 2022-07-15 14:30:46 +02:00
parent d8ff4d9f57
commit e4ed618a66
1 changed files with 4 additions and 1 deletions

View File

@ -856,6 +856,9 @@ namespace QtPrivate
};
};
template <typename T>
using IsRealGadget = std::bool_constant<IsGadgetHelper<T>::IsRealGadget>;
template<typename T, typename Enable = void>
struct IsPointerToGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; };
@ -1103,7 +1106,7 @@ namespace QtPrivate
template <typename T, int =
QtPrivate::IsPointerToTypeDerivedFromQObject<T>::Value ? QMetaType::PointerToQObject :
QtPrivate::IsGadgetHelper<T>::IsRealGadget ? QMetaType::IsGadget :
QtPrivate::IsRealGadget<T>::value ? QMetaType::IsGadget :
QtPrivate::IsPointerToGadgetHelper<T>::IsRealGadget ? QMetaType::PointerToGadget :
QtPrivate::IsQEnumHelper<T>::Value ? QMetaType::IsEnumeration : 0>
struct QMetaTypeIdQObject