diff --git a/src/corelib/global/qtypeinfo.h b/src/corelib/global/qtypeinfo.h index e6d63241bbe..f89bf72635e 100644 --- a/src/corelib/global/qtypeinfo.h +++ b/src/corelib/global/qtypeinfo.h @@ -237,7 +237,7 @@ using expand_operator_equal_recursive = std::conjunction struct expand_operator_equal_tuple : has_operator_equal {}; template -struct expand_operator_equal_tuple> : has_operator_equal {}; +struct expand_operator_equal_tuple> : expand_operator_equal_recursive {}; template struct expand_operator_equal_tuple> : expand_operator_equal_recursive {}; template @@ -277,7 +277,7 @@ using expand_operator_less_than_recursive = std::conjunction struct expand_operator_less_than_tuple : has_operator_less_than {}; template -struct expand_operator_less_than_tuple> : has_operator_less_than {}; +struct expand_operator_less_than_tuple> : expand_operator_less_than_recursive {}; template struct expand_operator_less_than_tuple> : expand_operator_less_than_recursive {}; template diff --git a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp index 61ea16c4da0..606a32dd4df 100644 --- a/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp +++ b/tests/auto/corelib/kernel/qmetatype/tst_qmetatype.cpp @@ -123,6 +123,26 @@ static_assert(!QTypeTraits::has_operator_less_than_v>); static_assert(QTypeTraits::has_operator_equal_v>); static_assert(!QTypeTraits::has_operator_less_than_v>); +// optionals of nesteds +static_assert(QTypeTraits::has_operator_equal_v>>); +static_assert(QTypeTraits::has_operator_less_than_v>>); +static_assert(!QTypeTraits::has_operator_equal_v>>); +static_assert(!QTypeTraits::has_operator_less_than_v>>); + +static_assert(QTypeTraits::has_operator_equal_v>); +static_assert(!QTypeTraits::has_operator_less_than_v>); +static_assert(QTypeTraits::has_operator_equal_v>>); +static_assert(!QTypeTraits::has_operator_less_than_v>>); +static_assert(QTypeTraits::has_operator_equal_v>>); +static_assert(!QTypeTraits::has_operator_less_than_v>>); + +static_assert(QTypeTraits::has_operator_equal_v>); +static_assert(!QTypeTraits::has_operator_less_than_v>); +static_assert(QTypeTraits::has_operator_equal_v>>); +static_assert(!QTypeTraits::has_operator_less_than_v>>); +static_assert(QTypeTraits::has_operator_equal_v>>); +static_assert(!QTypeTraits::has_operator_less_than_v>>); + } struct BaseGenericType