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

履歴 編集

function template
<functional>

std::reference_wrapper::operator==

friend constexpr bool
  operator==(reference_wrapper x,
             reference_wrapper y);          // (1) C++26

friend constexpr bool
  operator==(reference_wrapper x,
             const T& y);                   // (2) C++26

friend constexpr bool
  operator==(reference_wrapper x,
             reference_wrapper<const T> y); // (3) C++26

概要

等値比較を行う。

  • (1) : 同じ要素型のreference_wrapper同士を等値比較する
  • (2) : reference_wrapperと要素型Tを等値比較する
  • (3) : reference_wrapper<T>reference_wrapper<const T>を等値比較する

(2)と(3)はオペランドを左右で逆にしても使用できる。

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

  • (1) : 式x.get() == y.get()が妥当であり、その戻り値型がboolに変換可能であること
  • (2) : 式x.get() == yが妥当であり、その戻り値型がboolに変換可能であること
  • (3) : 式x.get() == y.get()が妥当であり、その戻り値型がboolに変換可能であること

戻り値

備考

  • この演算子により、以下の演算子が使用可能になる:
    • operator!=

#include <cassert>
#include <functional>

int main()
{
  int x = 3;
  int y = 3;

  assert(std::ref(x) == std::ref(y));

  assert(std::ref(x) == 3);
  assert(3 == std::ref(x));

  assert(std::ref(x) == std::cref(y));
  assert(std::cref(x) == std::ref(y));
}

出力

バージョン

言語

  • C++26

処理系

参照