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

パブリック関数

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つの関係演算子のうちの1つの結果に変換する:

関数操作
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 が異なる結果を表している場合は真を返し、そうでない場合は真を返す。

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

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

© 2025 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.