名前空間
変種
操作

std::ranges::equal_to

From cppreference.com
< cpp‎ | utility‎ | functional
 
 
ユーティリティライブラリ
言語サポート
型のサポート (基本型、RTTI)
ライブラリ機能検査マクロ (C++20)
プログラムユーティリティ
可変引数関数
コルーチンサポート (C++20)
契約サポート (C++26)
三方比較
(C++20)
(C++20)(C++20)(C++20)  
(C++20)(C++20)(C++20)

汎用ユーティリティ
関係演算子 (C++20で非推奨)
 
関数オブジェクト
関数の呼び出し
(C++17)(C++23)
恒等関数オブジェクト
(C++20)
透過的な演算子ラッパー
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

古いバインダとアダプタ
(C++17まで*)
(C++17まで*)
(C++17まで*)
(C++17まで*)  
(C++17まで*)
(C++17*まで)(C++17*まで)(C++17*まで)(C++17*まで)
(C++20まで*)
(C++20まで*)
(C++17*まで)(C++17*まで)
(C++17*まで)(C++17*まで)

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

比較を行う関数オブジェクトです。関数呼び出し演算子のパラメータ型(返り値の型ではない)は、引数から推論されます。

目次

[編集] ネストされた型

ネストされた型 定義
is_transparent unspecified

[編集] メンバ関数

operator()
引数が等しいかどうかをチェックします。
(public member function)

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 への変換シーケンスが 等価性を保持しない 場合、動作は未定義です。
  • それ以外の場合
  • expr の結果を返します。
  • もし std::equality_comparable_with<T, U> がモデリングされていない場合、動作は未定義です。

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

[編集] 注意

std::equal_to と比較して、std::ranges::equal_to はさらに != が有効であること、および両方の引数型が(同種に)それ自身と比較可能であることが必要です(equality_comparable_with 制約により)。

[編集]

[編集] 欠陥報告

以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。

DR 適用対象 公開された動作 正しい動作
LWG 3530 C++20 ポインタを比較する際の構文チェックが緩和されました。 意味的な要件のみが緩和されています。

[編集] 関連項目

x == y を実装する関数オブジェクト
(クラステンプレート) [編集]
English 日本語 中文(简体) 中文(繁體)