名前空間
変種
操作

std::shared_ptr<T>::owner_equal

From cppreference.com
< cpp‎ | memory‎ | shared ptr
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
template< class Y >
bool owner_equal( const std::shared_ptr<Y>& other ) const noexcept;
(1) (C++26以降)
template< class Y >
bool owner_equal( const std::weak_ptr<Y>& other ) const noexcept;
(2) (C++26以降)

このshared_ptrotherが所有権を共有しているか、あるいは両方とも空であるかをチェックします。比較は、2つのスマートポインタが両方とも空であるか、またはget()によって得られるポインタの値が異なる(例えば、同じオブジェクト内の異なるサブオブジェクトを指しているため)場合でも、同じオブジェクトを所有している場合にのみ同等とみなされるように行われます。

メンバ関数owner_equalは、!owner_before(other) && !other.owner_before(*this)trueであることと、owner_equal(other)trueであることが同値関係になります。

この順序付けは、共有ポインタと弱ポインタを、通常はstd::owner_equalを介して、順序付けられていない連想コンテナのキーとして使用できるようにするために使用されます。

目次

[編集] パラメータ

その他 - 比較対象のstd::shared_ptrまたはstd::weak_ptr

[編集] 戻り値

true: *thisotherが所有権を共有しているか、あるいは両方とも空の場合。それ以外の場合は、falseを返します。

[編集] 注記

機能テストマクロ 規格 機能
__cpp_lib_smart_ptr_owner_equality 202306L (C++26) std::shared_ptr順序付けられていない連想コンテナのキーとして使用できるようにする。

[編集]

[編集] 関連項目

shared ポインタと weak ポインタの、所有者ベースの混合型の等価比較を提供します
(クラス) [編集]
English 日本語 中文(简体) 中文(繁體)