summaryrefslogtreecommitdiffstats
path: root/src/corelib/kernel/qobjectdefs_impl.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/corelib/kernel/qobjectdefs_impl.h')
-rw-r--r--src/corelib/kernel/qobjectdefs_impl.h10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/corelib/kernel/qobjectdefs_impl.h b/src/corelib/kernel/qobjectdefs_impl.h
index e94e713e1f..79c9c8303e 100644
--- a/src/corelib/kernel/qobjectdefs_impl.h
+++ b/src/corelib/kernel/qobjectdefs_impl.h
@@ -229,8 +229,14 @@ namespace QtPrivate {
(std::is_floating_point<From>::value && std::is_integral<To>::value) ||
(std::is_floating_point<From>::value && std::is_floating_point<To>::value && sizeof(From) > sizeof(To)) ||
((std::is_integral<From>::value || std::is_enum<From>::value) && std::is_floating_point<To>::value) ||
- (std::is_integral<From>::value && std::is_integral<To>::value && (sizeof(From) > sizeof(To) || std::is_signed<From>::value != std::is_signed<To>::value)) ||
- (std::is_enum<From>::value && std::is_integral<To>::value && (sizeof(From) > sizeof(To) || IsEnumUnderlyingTypeSigned<From>::value != std::is_signed<To>::value))
+ (std::is_integral<From>::value && std::is_integral<To>::value
+ && (sizeof(From) > sizeof(To)
+ || (std::is_signed<From>::value ? !std::is_signed<To>::value
+ : (std::is_signed<To>::value && sizeof(From) == sizeof(To))))) ||
+ (std::is_enum<From>::value && std::is_integral<To>::value
+ && (sizeof(From) > sizeof(To)
+ || (IsEnumUnderlyingTypeSigned<From>::value ? !std::is_signed<To>::value
+ : (std::is_signed<To>::value && sizeof(From) == sizeof(To)))))
>
{
};