最終更新日時: 2026年02月25日 13時06分35秒 (JST)
Akira Takahashi が更新

履歴 編集

function
<memory>

# std::weak_ptr::owner_hash(C++26)

    size_t owner_hash() const noexcept; // (1) C++26

## 概要

所有権ベースでのハッシュ値を取得する。

## 戻り値

所有権が等価な（`owner_equal()`が`true`を返す）`shared_ptr`および`weak_ptr`オブジェクトに対して、同じハッシュ値を返す。

## 備考

この関数は、所有権ベースでのハッシュを提供する。

`owner_equal()`と`std::owner_hash`を組み合わせて、`weak_ptr`を`unordered_map`や`unordered_set`のキーとして使用できる。

詳細は、`shared_ptr`の`owner_hash()`メンバ関数を参照。

## 例

    #include <iostream>
    #include <memory>

    int main()
    {
      std::shared_ptr<int> sp(new int(42));
      std::weak_ptr<int> wp = sp;

      std::cout << std::boolalpha;
      std::cout << (sp.owner_hash() == wp.owner_hash()) << std::endl;
    }

### 出力

    true

## バージョン

### 言語

- C++26

### 処理系

- Clang: 22 ✅
- GCC: 16 ✅
- Visual C++: 2026 Update 2 ❌

## 関連項目

- `owner_equal()`
- `std::owner_hash`
- `owner_before()`

## 参照

- P1901R2 Enabling the Use of `weak_ptr` as Keys in Unordered Associative Containers