From fb89364e3a1499a41c81d29443966fab89f602e3 Mon Sep 17 00:00:00 2001 From: Thiago Macieira Date: Thu, 4 May 2017 13:08:57 -0700 Subject: [PATCH] AreArgumentsCompatible: Replace a derived struct with template alias There's no need to derive. This fixes the build with MSVC 2017 under /permissive-. I don't know what was wrong (ICC, Clang and GCC don't complain), but it must be related to "Lookup members in dependent base" in [1]. [1] https://docs.microsoft.com/en-us/cpp/build/reference/permissive-standards-conformance Change-Id: I9ad33fff8b634979bdbafffd14bb8016f5dc98b3 Reviewed-by: Marc Mutz Reviewed-by: Giuseppe D'Angelo --- src/corelib/kernel/qobjectdefs_impl.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h index 3f5f2e78bb..c91259d559 100644 --- a/src/corelib/kernel/qobjectdefs_impl.h +++ b/src/corelib/kernel/qobjectdefs_impl.h @@ -300,7 +300,7 @@ namespace QtPrivate { static const typename RemoveRef::Type &dummy(); enum { value = sizeof(test(dummy())) == sizeof(int) }; #ifdef QT_NO_NARROWING_CONVERSIONS_IN_CONNECT - struct AreArgumentsNarrowed : AreArgumentsNarrowedBase::Type, typename RemoveRef::Type> {}; + using AreArgumentsNarrowed = AreArgumentsNarrowedBase::Type, typename RemoveRef::Type>; Q_STATIC_ASSERT_X(!AreArgumentsNarrowed::value, "Signal and slot arguments are not compatible (narrowing)"); #endif };