名前空間
変種
操作

std::strong_equality

提供: cppreference.com
< cpp‎ | utility
 
 
ユーティリティライブラリ
汎用ユーティリティ
日付と時間
関数オブジェクト
書式化ライブラリ(C++20)
(C++11)
関係演算子 (C++20で非推奨)
整数比較関数
(C++20)
スワップと型操作
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
一般的な語彙の型
(C++11)
(C++17)
(C++17)
(C++17)
(C++17)

初等文字列変換
(C++17)
(C++17)
 
ヘッダ <compare> で定義
class strong_equality;
(C++20以上)

クラス型 std::strong_equality は以下のような三方比較の結果の型です。

  • 等しい、等しくないの比較のみができます (大小比較はできません)。
  • 代用可能性を暗示します。 a が b と同等な場合、 f(a) も f(b) と同等です。 ただし f は引数のパブリック const メンバを通してアクセス可能な比較用の状態のみを読み込む関数を表します。 別の言い方をすると、同等な値は区別できません。

目次

[編集]定数

std::strong_equality はその型の const 静的データメンバとして実装される4つの有効な値を持ちます。

メンバ定数 定義
equivalent(inline constexpr)
[静的]
等しいことを表す std::strong_equality 型の有効な値。 equal と等しい。
(パブリック静的メンバ定数)
equal(inline constexpr)
[静的]
等しいことを表す std::strong_equality 型の有効な値。 equivalent と等しい。
(パブリック静的メンバ定数)
nonequivalent(inline constexpr)
[静的]
等しくないことを表す std::strong_equality 型の有効な値。 nonequal と等しい。
(パブリック静的メンバ定数)
nonequal(inline constexpr)
[静的]
等しくないことを表す std::strong_equality 型の有効な値。 nonequivalent と等しい。
(パブリック静的メンバ定数)

[編集]変換

std::strong_equalitystd::weak_equality に暗黙に変換でき、 std::strong_orderingstrong_equality に暗黙に変換できます。

operator weak_equality
std::weak_equality への暗黙の変換
(パブリックメンバ関数)

std::strong_equality::operator weak_equality

constexpr operator weak_equality()constnoexcept;

戻り値

vequivalent または equal の場合は std::weak_equality::equivalentvnonequivalent または nonequal の場合は std::weak_equality::nonequivalent

[編集]比較

比較演算子はこの型の値とリテラル 0 との間で定義されます。 これは三方比較演算子の結果をブーリアンの関係に変換するために使用される式 a <=> b ==0 および a <=> b !=0 をサポートします。 std::is_eq および std::is_neq を参照してください。

strong_equality を整数リテラル 0 以外の何らかの値と比較しようと試みるプログラムの動作は未定義です。

operator==operator<=>
ゼロまたは strong_equality と比較します
(関数)

operator==

friendconstexprbool operator==(strong_equality v, /*unspecified*/ u)noexcept;
(1)
friendconstexprbool operator==(strong_equality v, strong_equality w)noexcept=default;
(2)

引数

v, w - 調べる std::strong_equality の値
u - リテラルのゼロを受理する任意の型の未使用な引数

戻り値

1)vequivalent または equal の場合は truevnonequivalent または nonequal の場合は false
2) 両方の引数が同じ値を保持している場合は true、そうでなければ falseequalequivalent と等しく、 nonequalnonequivalent と等しいけれども、 equalnonequal と等しくないことに注意してください。

operator<=>

friendconstexpr strong_equality operator<=>(strong_equality v, /*unspecified*/ u)noexcept;
friendconstexpr strong_equality operator<=>(/*unspecified*/ u, strong_equality v)noexcept;

引数

v - 調べる std::strong_equality の値
u - リテラルのゼロを受理する任意の型の未使用な引数

戻り値

v

[編集]

[編集]関連項目

6種類の演算子をすべてサポートする代用可能な三方比較の結果の型
(クラス)[edit]
6種類の演算子をすべてサポートする代用可能でない三方比較の結果の型
(クラス)[edit]
6種類の演算子をすべてサポートし、代用可能でなく、比較不可能な値を許容する、三方比較の結果の型
(クラス)[edit]
等しい、等しくないのみサポートする代用可能でない三方比較の結果の型
(クラス)[edit]
close