Namespaces
Variants

std::ranges:: equal_to

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
ヘッダーで定義 <functional>
struct equal_to ;
(C++20以降)

比較を実行するための関数オブジェクト。関数呼び出し演算子のパラメータ型(戻り値の型は除く)は引数から推論されます。

目次

ネストされた型

ネスト型 定義
is_transparent unspecified

メンバー関数

operator()
引数が 等しい かどうかをチェックする
(公開メンバ関数)

std::ranges::equal_to:: operator()

template < class T, class U >
constexpr bool operator ( ) ( T && t, U && u ) const ;

std:: forward < T > ( t ) == std:: forward < U > ( u ) expr として与えられた場合:

  • 変換された2つのポインタ(型 P )について、一方のポインタが ポインタに対する実装定義の厳密全順序 において他方のポインタに先行する場合、 false を返し、それ以外の場合 true を返す。
  • T から P への変換シーケンス、または U から P への変換シーケンスが 等価性保存 でない場合、動作は未定義である。
  • それ以外の場合:

このオーバーロードは、 std:: equality_comparable_with < T, U > が満たされる場合にのみオーバーロード解決に参加する。

注記

std::equal_to と比較して、 std::ranges::equal_to は追加で != が有効であることを要求し、両方の引数型が(同種的に)自身と比較可能であること( equality_comparable_with 制約を通じて)を要求します。

不具合報告

以下の動作変更の欠陥報告書は、以前に公開されたC++規格に対して遡及的に適用されました。

DR Applied to Behavior as published Correct behavior
LWG 3530 C++20 ポインタ比較時に構文チェックが緩和されていた 意味論的な要件のみが緩和される

関連項目

x == y を実装する関数オブジェクト x == y
(クラステンプレート)