このページでは

Qt::strong_ordering Class

class Qt::strong_ordering

Qt::strong_ordering これは、等価な値が区別できない場合の比較を表しています。詳細...

ヘッダー: #include <QtCompare>
CMake: find_package(Qt6 REQUIRED COMPONENTS Core)
target_link_libraries(mytarget PRIVATE Qt6::Core)
qmake: QT += core
以下のように: Qt 6.7

パブリック関数

静的パブリックメンバー

const Qt::strong_ordering equal
const Qt::strong_ordering equivalent
const Qt::strong_ordering greater
const Qt::strong_ordering less
bool is_eq(Qt::strong_ordering o)
bool is_gt(Qt::strong_ordering o)
bool is_gteq(Qt::strong_ordering o)
bool is_lt(Qt::strong_ordering o)
bool is_lteq(Qt::strong_ordering o)
bool is_neq(Qt::strong_ordering o)
bool operator!=(Qt::strong_ordering lhs, Qt::strong_ordering rhs)
bool operator==(Qt::strong_ordering lhs, Qt::strong_ordering rhs)

詳細な説明

Qt::strong_ordering 型の値は、通常、3 項比較関数から返されます。このような関数は 2 つのオブジェクトを比較し、それらの順序を決定します。この戻り値の型を使用して、順序が厳密であることを示します。つまり、関数は明確に定義された全順序を確立します。

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

  • less は、左オペランドが右オペランドより小さいことを表します。
  • equal 左オペランドが右オペランドと等しいことを表します;
  • equivalent は `equal` の別名です;
  • greater は、左オペランドが右オペランドより大きいことを表します。

Qt::strong_ordering 慣例的に、インスタンスをリテラルゼロと比較する際に使用されます。例えば、次のような場合です:

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

Qt::strong_ordering compare(T lhs, T rhs); // defined out-of-line
~~~

Qt::strong_ordering 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
}

「 Qt::weak_ordering 」、「Qt::partial_ordering 」、および「比較型の概要」も参照してください 。

メンバ関数のドキュメント

[constexpr noexcept] strong_ordering::strong_ordering(std::strong_ordering stdorder)

stdorder から、以下のルールに従ってQt::strong_ordering オブジェクトを生成します。

  • std::strong_ordering::less はless に変換されます。
  • std::strong_ordering::equivalent はequivalent に変換されます。
  • std::strong_ordering::equal はequal に変換されます。
  • std::strong_ordering::greater は、greater に変換されます。

[constexpr noexcept] strong_ordering::operator Qt::partial_ordering() const

この `Qt::strong_ordering ` 値を、以下のルールに従って `Qt::partial_ordering ` オブジェクトに変換します。

[constexpr noexcept] strong_ordering::operator Qt::weak_ordering() const

この `Qt::strong_ordering ` 値を、以下のルールに従って `Qt::weak_ordering ` オブジェクトに変換します。

[constexpr noexcept] strong_ordering::operator std::strong_ordering() const

この `Qt::strong_ordering ` の値を、以下の規則に従って `std::strong_ordering` オブジェクトに変換します:

  • less std::strong_ordering::less に変換されます。
  • equivalent std::strong_ordering::equivalent に変換します。
  • equal std::strong_ordering::equal に変換します。
  • greater std::strong_ordering::greater に変換します。

メンバ変数のドキュメント

const Qt::strong_ordering strong_ordering::equal

左側のオペランドが右側のオペランドと等しいという比較の結果を表します。Qt::strong_ordering::equivalent と同じです。

const Qt::strong_ordering strong_ordering::equivalent

左側のオペランドが右側のオペランドと等しいという比較の結果を表します。Qt::strong_ordering::equal と同じです。

const Qt::strong_ordering strong_ordering::greater

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

const Qt::strong_ordering strong_ordering::less

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

関連する非メンバー

[constexpr noexcept] bool is_eq(Qt::strong_ordering o)

[constexpr noexcept] bool is_gt(Qt::strong_ordering o)

[constexpr noexcept] bool is_gteq(Qt::strong_ordering o)

[constexpr noexcept] bool is_lt(Qt::strong_ordering o)

[constexpr noexcept] bool is_lteq(Qt::strong_ordering o)

[constexpr noexcept] bool is_neq(Qt::strong_ordering o)

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

関数演算
is_eqo == 0
is_neqo != 0
is_lto < 0
is_lteqo <= 0
is_gto > 0
is_gteqo >= 0

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

[constexpr noexcept] bool operator!=(Qt::strong_ordering lhs, Qt::strong_ordering rhs)

lhs とrhs が異なる結果を表す場合、true を返します。それ以外の場合は true を返します。

[constexpr noexcept] bool operator==(Qt::strong_ordering lhs, Qt::strong_ordering rhs)

lhs とrhs が同じ結果を表す場合は true を返し、そうでない場合は false を返します。

© 2026 The Qt Company Ltd. Documentation contributions included herein are the copyrights of their respective owners. The documentation provided herein is licensed under the terms of the GNU Free Documentation License version 1.3 as published by the Free Software Foundation. Qt and respective logos are trademarks of The Qt Company Ltd. in Finland and/or other countries worldwide. All other trademarks are property of their respective owners.