最終更新日時(UTC):
が更新

履歴 編集

class template
<functional>

std::ranges::equal_to(C++20)

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;
  };
}

概要

equal_toクラスは、等値比較を行う関数オブジェクトである。

この関数オブジェクトは一切のメンバ変数を持たず、状態を保持しない。

テンプレートパラメータ制約

  • TU== および != で同値比較可能、もしくは 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;
}

出力

true

参照