Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
QtOrderingPrivate::CompareThreeWayTester Namespace Reference

Classes

struct  HasCompareThreeWay
struct  HasCompareThreeWay< LT *, RT *, std::void_t< decltype(compareThreeWay(std::declval< WrappedType< LT > >(), std::declval< WrappedType< RT > >()))> >
struct  HasCompareThreeWay< LT, RT, std::void_t< decltype(compareThreeWay(std::declval< LT >(), std::declval< RT >()))> >

Typedefs

template<typename T>
using WrappedType = std::conditional_t<std::is_pointer_v<T>, Qt::totally_ordered_wrapper<T>, T>

Functions

template<typename LT, typename RT, std::enable_if_t< hasCompareThreeWay_v< LT, RT >, bool > = true>
constexpr bool compareThreeWayNoexcept () noexcept
template<typename LT, typename RT, std::enable_if_t< std::conjunction_v< std::negation< HasCompareThreeWay< LT, RT > >, HasCompareThreeWay< RT, LT > >, bool > = true>
constexpr bool compareThreeWayNoexcept () noexcept
template<typename LeftInt, typename RightInt, if_integral< LeftInt > = true, if_integral< RightInt > = true>
constexpr Qt::strong_ordering compareThreeWay (LeftInt lhs, RightInt rhs) noexcept

Variables

template<typename LT, typename RT>
constexpr bool hasCompareThreeWay_v = HasCompareThreeWay<LT, RT>::value

Typedef Documentation

◆ WrappedType

template<typename T>
using QtOrderingPrivate::CompareThreeWayTester::WrappedType = std::conditional_t<std::is_pointer_v<T>, Qt::totally_ordered_wrapper<T>, T>

Definition at line 1202 of file qcomparehelpers.h.

Function Documentation

◆ compareThreeWay()

template<typename LeftInt, typename RightInt, if_integral< LeftInt > = true, if_integral< RightInt > = true>
Qt::strong_ordering Qt::compareThreeWay ( LeftInt lhs,
RightInt rhs )
constexprnoexcept

Definition at line 939 of file qcomparehelpers.h.

◆ compareThreeWayNoexcept() [1/2]

template<typename LT, typename RT, std::enable_if_t< hasCompareThreeWay_v< LT, RT >, bool > = true>
bool QtOrderingPrivate::CompareThreeWayTester::compareThreeWayNoexcept ( )
constexprnoexcept

Definition at line 1231 of file qcomparehelpers.h.

◆ compareThreeWayNoexcept() [2/2]

template<typename LT, typename RT, std::enable_if_t< std::conjunction_v< std::negation< HasCompareThreeWay< LT, RT > >, HasCompareThreeWay< RT, LT > >, bool > = true>
bool QtOrderingPrivate::CompareThreeWayTester::compareThreeWayNoexcept ( )
constexprnoexcept

Definition at line 1238 of file qcomparehelpers.h.

Variable Documentation

◆ hasCompareThreeWay_v

template<typename LT, typename RT>
bool QtOrderingPrivate::CompareThreeWayTester::hasCompareThreeWay_v = HasCompareThreeWay<LT, RT>::value
inlineconstexpr

Definition at line 1222 of file qcomparehelpers.h.