<QtCompare> - Classes and helpers for defining comparison operators

<QtCompare> ヘッダーファイルは、Qt::*_ordering 型と比較演算子を定義するヘルパーマクロを定義しています。さらに...

Header: #include <QtCompare>

関数

(since 6.7) auto qCompareThreeWay(const LeftType &lhs, const RightType &rhs)

詳しい説明

このヘッダーは、std::*_ordering 型の Qt C++17 バックポートであるQt::partial_ordering 型、Qt::weak_ordering 型、Qt::strong_ordering 型を紹介します。

このヘッダーには、C++17 で 3 者間比較を実装するための関数も含まれています。

Qt::compareThreeWay() 関数のオーバーロードは、組み込み C++ 型の 3 者間比較を提供します。

qCompareThreeWay() テンプレートは、一般的な 3 者間比較の実装として機能します。この関数の実装では、Qt::compareThreeWay() および freecompareThreeWay() 関数に依存しています。

関数説明

[since 6.7] template <typename LeftType, typename RightType> auto qCompareThreeWay(const LeftType &lhs, const RightType &rhs)

lhsrhs で 3 者比較を行い、結果として Qt の順序型の 1 つを返します。この関数は C++17 と C++20 の両方で使用できます。

実際に返される型はLeftTypeRightType に依存します。

注: この関数テンプレートは、compareThreeWay()(LeftType, RightType) ペアまたは逆の(RightType, LeftType) ペアに対して実装されている場合にのみ使用できます。

このメソッドは以下と等価です。

using Qt::compareThreeWay;
return compareThreeWay(lhs, rhs);

ここで、Qt::compareThreeWay は組み込み型に対する三元比較の Qt 実装です。

フリーのcompareThreeWay 関数は、カスタム型のための三 者比較を提供する必要があります。この関数はQtの順序型のいずれかを返す必要があります。

Qtはいくつかの型に対してcompareThreeWay の実装を提供しています。

注意: Qtの型については、compareThreeWay() を再実装しないでください。将来のQtリリースでは、より多くのQt型がサポートされる予定です。

この関数は、LeftTypeRightType について何も知らない場合に、ジェネリックコードで主に使用してください。

型がわかっている場合は

  • Qt::compareThreeWay 組み込み型には
  • compareThreeWay カスタム型

C++20 以降でのみコンパイルされるコードでは、operator<=>() を直接使用してください。

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

Qt::partial_orderingQt::weak_orderingQt::strong_orderingも参照して ください。

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