std::weak_ptr<T>::owner_equal
From cppreference.com
| template< class Y > bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept; |
(1) | (C++26以降) |
| template< class Y > bool owner_equal( const std::shared_ptr<Y>& other ) const noexcept; |
(2) | (C++26以降) |
このweak_ptrとotherが所有権を共有しているか、または両方が空であるかを確認します。この比較は、2つのスマートポインタが両方とも空であるか、またはget()によって得られるポインタの値が異なる場合(例えば、同じオブジェクト内の異なるサブオブジェクトを指している場合)でも、同じオブジェクトを所有している場合にのみ等価とみなされます。
メンバ関数owner_equalは、!owner_before(other) && !other.owner_before(*this)がtrueであるならば、そしてその場合にのみowner_equal(other)がtrueとなるような同値関係です。
この順序は、sharedポインタとweakポインタを、通常はstd::owner_equalを介して、順序付けられていない連想コンテナのキーとして使用可能にするために使用されます。
目次 |
[編集] パラメータ
| その他 | - | 比較対象のstd::shared_ptrまたはstd::weak_ptr |
[編集] 戻り値
true *this と other が所有権を共有しているか、または両方が空の場合。それ以外の場合は、false を返します。
[編集] 注釈
| 機能テストマクロ | 値 | 規格 | 機能 |
|---|---|---|---|
__cpp_lib_smart_ptr_owner_equality |
202306L |
(C++26) | 順序なし連想コンテナのキーとして std::weak_ptr の使用を有効にする |
[編集] 例
| このセクションは未完成です 理由:例 |
[編集] 関連項目
| (C++26) |
shared ポインタと weak ポインタの、所有者ベースの混合型の等価比較を提供します (クラス) |