strong_ordering Class

class Qt::strong_ordering

Qt::strong_ordering 同等の値が区別できない比較を表します。さらに...

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

パブリック関数

strong_ordering(std::strong_ordering stdorder)
Qt::partial_ordering operator Qt::partial_ordering() const
Qt::weak_ordering operator Qt::weak_ordering() const
std::strong_ordering operator std::strong_ordering() const

静的パブリックメンバー

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 は、例えばこのように、インスタンスをリテラル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:

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_orderingQt::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] Qt::partial_ordering strong_ordering::operator Qt::partial_ordering() const

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

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

次の規則を使用して、このQt::strong_ordering の値をQt::weak_ordering オブジェクトに変換します:

[constexpr noexcept] std::strong_ordering 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)

lhsrhs が異なる結果を表す場合、true を返します。

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

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

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