- functional[meta header]
- std::ranges[meta namespace]
- class template[meta id-type]
- cpp20[meta cpp]
namespace std::ranges {
struct equal_to {
template<class T, class U>
requires equality_comparable_with<T, U>
constexpr bool operator()(T&& t, U&& u) const;
using is_transparent = unspecified;
};
}- unspecified[italic]
- equality_comparable_with[link /reference/concepts/equality_comparable.md]
equal_toクラスは、等値比較を行う関数オブジェクトである。
この関数オブジェクトは一切のメンバ変数を持たず、状態を保持しない。
TとUが==および!=で同値比較可能、もしくはdeclval<T>() == declval<U>()がポインタ同士を比較する組み込みの演算に帰着すること。
declval<T>() == declval<U>() がポインタ同士を比較する組み込みの演算に帰着する場合、TおよびUからポインタへの変換は等しさを保持すること(equality-preserving)。
| 名前 | 説明 |
|---|---|
operator () |
x == y と等価 |
| 名前 | 説明 |
|---|---|
is_transparent |
operator() が関数テンプレートである事を示すタグ型。実装依存の型であるがあくまでタグ型であり、型そのものには意味はない。 |
#include <iostream>
#include <functional>
int main()
{
std::cout << std::boolalpha << std::ranges::equal_to()(3, 3) << std::endl;
}- std::ranges::equal_to[color ff0000]
true