std::experimental::observer_ptr
From cppreference.com
< cpp | experimental
| ヘッダ <experimental/memory> で定義 |
||
| template< class W > class observer_ptr; |
(Library Fundamentals TS v2) | |
std::experimental::observer_ptrは、所有権を持たないポインタ、すなわちオブザーバー(observer)です。オブザーバーは、監視対象オブジェクト(watched object)として知られる第2のオブジェクトへのポインタを格納します。observer_ptrは監視対象オブジェクトを持たない場合もあります。
オブザーバーは監視対象オブジェクトに対して一切の責任を負いません。オブザーバーとそれが監視するオブジェクトとの間に本質的な関係はありません。
これは生ポインタ型のほぼドロップインな代替として意図されており、ボキャブラリー型として、コードを読む人が詳細な分析をせずともその意図された用途を示すという利点があります。
observer_ptrの特殊化は、CopyConstructibleおよびCopyAssignableの要件を満たします。
| 型要件 | ||
-Wは参照型であってはなりませんが、不完全型であってもかまいません。 |
目次 |
[編集] メンバ型
| メンバ型 | 定義 |
| element_type | このobserver_ptrによって監視されるオブジェクトの型であるW |
[編集] メンバ関数
新しいobserver_ptrを構築する(公開メンバ関数) | |
| (デストラクタ) (暗黙的に宣言) |
observer_ptrを破棄する(公開メンバ関数) |
| operator= (暗黙的に宣言) |
格納されているポインタを代入する、暗黙的に宣言されたコピーおよびムーブ代入演算子 (公開メンバ関数) |
変更 | |
| 監視対象オブジェクトへのポインタを返し、オブジェクトの監視を停止する (公開メンバ関数) | |
| 監視対象オブジェクトを置き換える (公開メンバ関数) | |
| 監視対象オブジェクトを交換する (公開メンバ関数) | |
監視 | |
| 監視対象オブジェクトへのポインタを返す (公開メンバ関数) | |
| 関連付けられた監視対象オブジェクトがあるか確認する (公開メンバ関数) | |
| 監視対象オブジェクトへのポインタを間接参照する (公開メンバ関数) | |
型変換 | |
| 格納されているポインタへの明示的な変換関数 (公開メンバ関数) | |
[編集] 非メンバ関数
オブジェクトを監視するobserver_ptrを作成する(関数テンプレート) | |
別のobserver_ptrまたはnullptrと比較する(関数テンプレート) | |
swapアルゴリズムを特殊化する(関数テンプレート) |
[編集] ヘルパークラス
observer_ptrのハッシュサポート(クラステンプレートの特殊化) |
[編集] 例
| このセクションは未完成です 理由: 例がありません |