summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qmetatype.h
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2022-07-16 09:38:09 -0700
committerThiago Macieira <thiago.macieira@intel.com>2022-07-27 14:51:44 -0700
commit7211771c64caad7880212b1a35d4a6070800c0fa (patch)
treec6ebb6fd9aab2ff9900ecce01f460995859dc770 /src/corelib/kernel/qmetatype.h
parent6b3c6155e9dfc6a3ee32b4ced4a117ec570d7563 (diff)
QMetaType: move is_complete template further up
Alongside the rest, makes the code better organized. Pick-to: 6.4 Change-Id: I36b24183fbd041179f2ffffd17025ca7fe988a5a Reviewed-by: Volker Hilsheimer <volker.hilsheimer@qt.io> Reviewed-by: Fabian Kosmale <fabian.kosmale@qt.io>
Diffstat (limited to 'src/corelib/kernel/qmetatype.h')
-rw-r--r--src/corelib/kernel/qmetatype.h29
1 files changed, 14 insertions, 15 deletions
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
index 7a66767258..18d59e1298 100644
--- a/src/corelib/kernel/qmetatype.h
+++ b/src/corelib/kernel/qmetatype.h
@@ -831,6 +831,20 @@ QT_FOR_EACH_AUTOMATIC_TEMPLATE_SMART_POINTER(QT_FORWARD_DECLARE_SHARED_POINTER_T
namespace QtPrivate
{
+ namespace detail {
+ template<typename T, typename ODR_VIOLATION_PREVENTER>
+ struct is_complete_helper
+ {
+ template<typename U>
+ static auto check(U *) -> std::integral_constant<bool, sizeof(U) != 0>;
+ static auto check(...) -> std::false_type;
+ using type = decltype(check(static_cast<T *>(nullptr)));
+ };
+ } // namespace detail
+
+ template <typename T, typename ODR_VIOLATION_PREVENTER>
+ struct is_complete : detail::is_complete_helper<T, ODR_VIOLATION_PREVENTER>::type {};
+
template<typename T>
struct IsPointerToTypeDerivedFromQObject
{
@@ -2464,7 +2478,6 @@ QT_FOR_EACH_STATIC_CORE_POINTER(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
QT_FOR_EACH_STATIC_CORE_TEMPLATE(QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER)
#undef QT_METATYPE_DECLARE_EXTERN_TEMPLATE_ITER
#endif
-
template<typename T>
constexpr const QMetaTypeInterface *qMetaTypeInterfaceForType()
{
@@ -2472,20 +2485,6 @@ constexpr const QMetaTypeInterface *qMetaTypeInterfaceForType()
return &QMetaTypeInterfaceWrapper<Ty>::metaType;
}
-namespace detail {
-template<typename T, typename ODR_VIOLATION_PREVENTER>
-struct is_complete_helper
-{
- template<typename U>
- static auto check(U *) -> std::integral_constant<bool, sizeof(U) != 0>;
- static auto check(...) -> std::false_type;
- using type = decltype(check(static_cast<T *>(nullptr)));
-};
-} // namespace detail
-
-template <typename T, typename ODR_VIOLATION_PREVENTER>
-struct is_complete : detail::is_complete_helper<T, ODR_VIOLATION_PREVENTER>::type {};
-
template<typename T>
struct qRemovePointerLike
{