• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(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

    処理系

    参照