QPartialOrdering Class

QPartialOrdering は、並べ替えのない比較結果を表します。詳細...

Header: #include <QPartialOrdering>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
Since: Qt 6.0

パブリック関数

QPartialOrdering(std::partial_ordering stdorder)
std::partial_ordering operator std::partial_ordering() const

静的パブリックメンバ

const QPartialOrdering Equivalent
const QPartialOrdering Greater
const QPartialOrdering Less
const QPartialOrdering Unordered
const QPartialOrdering equivalent
const QPartialOrdering greater
const QPartialOrdering less
const QPartialOrdering unordered
(since 6.7) bool is_eq(QPartialOrdering o)
(since 6.7) bool is_gt(QPartialOrdering o)
(since 6.7) bool is_gteq(QPartialOrdering o)
(since 6.7) bool is_lt(QPartialOrdering o)
(since 6.7) bool is_lteq(QPartialOrdering o)
(since 6.7) bool is_neq(QPartialOrdering o)
bool operator!=(QPartialOrdering lhs, QPartialOrdering rhs)
bool operator==(QPartialOrdering lhs, QPartialOrdering rhs)

詳細説明

QPartialOrdering 型の値は、通常、3 者間比較関数から返されます。このような関数は2つのオブジェクトを比較し、それらが順序付けされているかどうか、順序付けされている場合はその順序を確定します。つまり、すべての値のペアが順序付けされているわけではありません。

QPartialOrderingには4つの値があり、以下の記号定数で表されます:

  • less 左オペランドが右オペランドより小さいことを表します;
  • equivalent 2つのオペランドが等価であることを表します;
  • greater 左オペランドが右オペランドより大きいことを表します;
  • unordered 2つのオペランドが順序付けされていないことを表します。

QPartialOrdering は、インスタンスをリテラル 0 と比較することで、イディオムに使用されます:

// given a, b, c, d as objects of some type that allows for a 3-way compare,
// and a compare function declared as follows:

QPartialOrdering compare(T lhs, T rhs); // defined out-of-line
~~~

QPartialOrdering result = compare(a, b);
if (result < 0) {
    // a is less than b
}

if (compare(c, d) >= 0) {
    // c is greater than or equal to d
}

QPartialOrdering::unordered をリテラル 0 と比較すると、常にfalse の結果が返されます。

Qt::strong_orderingQt::weak_ordering比較型の概要も参照してください

メンバ関数ドキュメント

[constexpr noexcept] QPartialOrdering::QPartialOrdering(std::partial_ordering stdorder)

以下のルールを使用して、stdorder から QPartialOrdering オブジェクトを構築します:

  • std::partial_ordering::less はless に変換します。
  • std::partial_ordering::equivalent はequivalent に変換します。
  • std::partial_ordering::greater はgreater に変換されます。
  • std::partial_ordering::unordered に変換します。unordered

[constexpr noexcept] std::partial_ordering QPartialOrdering::operator std::partial_ordering() const

このQPartialOrdering の値を、以下の規則で std::partial_ordering オブジェクトに変換します:

  • less std::partial_ordering::less に変換します。
  • equivalent std::partial_ordering::equivalent に変換します。
  • greater は std::partial_ordering::greater に変換されます。
  • unordered は std::partial_ordering::unordered に変換します。

メンバ変数の説明

const QPartialOrdering QPartialOrdering::Equivalent

2つのオペランドが等価である比較の結果を表します。

const QPartialOrdering QPartialOrdering::Greater

左オペランドが右オペランドより大きい比較結果を表します。

const QPartialOrdering QPartialOrdering::Less

左オペランドが右オペランドより小さい比較結果を表します。

const QPartialOrdering QPartialOrdering::Unordered

2つのオペランド間に順序関係がない比較の結果を表します。

const QPartialOrdering QPartialOrdering::equivalent

2つのオペランドが等価である比較の結果を表します。

const QPartialOrdering QPartialOrdering::greater

左オペランドが右オペランドより大きい比較結果を表します。

const QPartialOrdering QPartialOrdering::less

左オペランドが右オペランドより小さい比較結果を表します。

const QPartialOrdering QPartialOrdering::unordered

2つのオペランド間に順序関係がない比較の結果を表します。

関連する非会員

[constexpr noexcept, since 6.7] bool is_eq(QPartialOrdering o)

[constexpr noexcept, since 6.7] bool is_gt(QPartialOrdering o)

[constexpr noexcept, since 6.7] bool is_gteq(QPartialOrdering o)

[constexpr noexcept, since 6.7] bool is_lt(QPartialOrdering o)

[constexpr noexcept, since 6.7] bool is_lteq(QPartialOrdering o)

[constexpr noexcept, since 6.7] bool is_neq(QPartialOrdering o)

o を 6 つの関係演算子のいずれかに変換します:

関数操作
is_eqo == 0
is_neqo != 0
is_lto < 0
is_lteqo <= 0
is_gto > 0
is_gteqo >= 0

これらの関数は、std::partial_ordering との互換性のために提供されています。

この関数は Qt 6.7 で導入されました。

[constexpr noexcept] bool operator!=(QPartialOrdering lhs, QPartialOrdering rhs)

lhsrhs が異なる結果を表す場合は真を返し、そうでない場合は真を返します。

[constexpr noexcept] bool operator==(QPartialOrdering lhs, QPartialOrdering rhs)

lhsrhs が同じ結果を表す場合は真を返し、そうでない場合は偽を返します。

©2024 The Qt Company Ltd. 本文書に含まれる文書の著作権は、それぞれの所有者に帰属します。 本書で提供されるドキュメントは、Free Software Foundation が発行したGNU Free Documentation License version 1.3に基づいてライセンスされています。 Qtおよびそれぞれのロゴは、フィンランドおよびその他の国におけるThe Qt Company Ltd.の 商標です。その他すべての商標は、それぞれの所有者に帰属します。