mirror of
https://github.com/microsoft/vcpkg.git
synced 2024-12-28 19:25:27 +08:00
0d209ca968
* [qtbase] Change qt source downloads to point at GitHub * [qtbase] Rewrite update system to emit tarball data * [qtbase] PR feedback * Update Qt to 6.3.1 * reenable qtlocation ? * v db * move buildtrees - to b in pipeline; trying to get webengine logs * fix patch * v db * remove special handling of arm cross case fixed in windows toolchain * v db * Fix stuff * fix more stuff * fix more stuff * retry * fix regex replacement * fix regex stuff. And qtinterface ref? * more fixes * remove unused variable * v db * Revert scripts/azure-pipelines/test-modified-ports.ps1 * v db fix * revert qtlocation changes * revert v db * v db * v db Co-authored-by: Robert Schumacher <roschuma@microsoft.com>
38 lines
1.3 KiB
Diff
38 lines
1.3 KiB
Diff
diff --git a/src/corelib/kernel/qmetatype.h b/src/corelib/kernel/qmetatype.h
|
|
index e40cd85..ba68a01 100644
|
|
--- a/src/corelib/kernel/qmetatype.h
|
|
+++ b/src/corelib/kernel/qmetatype.h
|
|
@@ -18,5 +18,6 @@
|
|
#endif
|
|
|
|
+#include <type_traits>
|
|
#include <array>
|
|
#include <new>
|
|
#include <vector>
|
|
@@ -826,7 +829,13 @@
|
|
struct IsGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; };
|
|
|
|
template<typename T>
|
|
+#if defined(__clang__) && (__clang_major__ > 11)
|
|
+ // Clang does not reject T::QtGadgetHelper as ambiguous if a class inherits from two QGADGETS
|
|
+ // but is not a QGADGET itself
|
|
+ struct IsGadgetHelper<T, std::void_t<typename T::QtGadgetHelper, decltype(&T::qt_check_for_QGADGET_macro)>>
|
|
+#else
|
|
struct IsGadgetHelper<T, typename T::QtGadgetHelper>
|
|
+#endif
|
|
{
|
|
template <typename X>
|
|
static char checkType(void (X::*)());
|
|
@@ -841,7 +850,11 @@
|
|
struct IsPointerToGadgetHelper { enum { IsRealGadget = false, IsGadgetOrDerivedFrom = false }; };
|
|
|
|
template<typename T>
|
|
+#if defined(__clang__) && (__clang_major__ > 11)
|
|
+ struct IsPointerToGadgetHelper<T*, std::void_t<typename T::QtGadgetHelper, decltype(&T::qt_check_for_QGADGET_macro)>>
|
|
+#else
|
|
struct IsPointerToGadgetHelper<T*, typename T::QtGadgetHelper>
|
|
+#endif
|
|
{
|
|
using BaseType = T;
|
|
template <typename X>
|