名前空間
変種
操作

std::strong_order

提供: cppreference.com
< cpp‎ | utility
 
 
 
ヘッダ <compare> で定義
template< class T >
constexpr std::strong_ordering strong_order(const T& a, const T& b);
(C++20以上)

三方比較を用いて2つの値を比較し、 std::strong_ordering 型の結果を生成します。

具体的には、

  • まず、 std::numeric_limits<T>::is_iec559true であれば、浮動小数点値の ISO/IEC/IEEE 60559 の totalOrder の比較を行い、その結果を std::strong_ordering 型の値として返します (ノート: この比較は正のゼロと負のゼロや異なる表現を持つ NaN を区別可能です)。
  • そうでなく、式 a <=> b が well-formed であり、その結果が std::strong_ordering に変換可能であれば、その結果を返します。
  • そうでなく、式 a <=> b は well-formed だけれども、その結果が std::strong_ordering に変換可能でなければ、この関数は削除されたものとして定義されます。
  • そうでなく、式 a <=> b は ill-formed だけれども、式 a == ba < b がどちらも well-formed であり、 bool に変換可能であれば、
  • a == btrue であれば、 std::strong_ordering::equal を返します。
  • そうでなく、 a < btrue であれば、 std::strong_ordering::less を返します。
  • そうでなければ、 std::strong_ordering::greater を返します。
  • そうでなければ、この関数は削除されたものとして定義されます。

目次

[編集] 引数

a, b - 比較する値

[編集] 戻り値

上で説明した通りの std::strong_ordering 型の値。

[編集] ノート

[編集]

[編集] 関連項目

6種類の演算子をすべてサポートする代用可能な三方比較の結果の型
(クラス) [edit]
三方比較を行い std::weak_ordering 型の結果を返します
(関数テンプレート) [edit]