diff options
Diffstat (limited to 'src/corelib/kernel/qobjectdefs_impl.h')
-rw-r--r-- | src/corelib/kernel/qobjectdefs_impl.h | 10 |
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))))) > { }; |