std::experimental::observer_ptr
出自 cppreference.com
< cpp | experimental
| 定義於標頭檔 <experimental/memory> |
||
| template< class W > class observer_ptr; |
(Library Fundamentals TS v2) | |
std::experimental::observer_ptr 是一種非擁有型指標(non-owning pointer),亦稱為觀察者(observer)。該觀察者儲存一個指向第二個物件的指標,稱為被觀察物件(watched object)。observer_ptr 也可以不指向任何被觀察物件。
觀察者對被觀察物件不負任何責任;觀察者與其所觀察的物件之間不存在內在關係。
它旨在作為原始指標類型的近乎直接的替代品,其優勢在於作為一種詞彙類型(vocabulary type),它無需程式碼閱讀者進行詳細分析即可表明其預期用途。
observer_ptr 的特化版本滿足 CopyConstructible(可複製建構)與 CopyAssignable(可複製指派)的需求。
| 類型要求 | ||
-W 不得為參照類型,但可以是未完成類型(incomplete type)。 |
目錄 |
[編輯] 成員類型
| 成員型別 | 定義 |
| element_type | W,此 observer_ptr 所觀察物件的類型 |
[編輯] 成員函式
建構一個新的 observer_ptr(公開成員函式) | |
| (解構函式) (隱式宣告) |
解構一個 observer_ptr(公開成員函式) |
| operator= (隱式宣告) |
隱式宣告的複製與移動指派運算子,用於指派儲存的指標 (公開成員函式) |
修改器 | |
| 傳回指向被觀察物件的指標並停止觀察該物件 (公開成員函式) | |
| 更換被觀察的物件 (公開成員函式) | |
| 交換被觀察的物件 (公開成員函式) | |
觀察器 | |
| 傳回指向被觀察物件的指標 (公開成員函式) | |
| 檢查是否有相關聯的被觀察物件 (公開成員函式) | |
| 解參照(dereference)指向被觀察物件的指標 (公開成員函式) | |
轉換 | |
| 至所儲存指標的顯式轉換函式 (公開成員函式) | |
[編輯] 非成員函式
建立一個觀察某個物件的 observer_ptr(函式模板) | |
與另一個 observer_ptr 或 nullptr 進行比較(函式模板) | |
特化 swap 演算法(函式模板) |
[編輯] 輔助類別
提供 observer_ptr 的雜湊支援(類別模板特化) |
[編輯] 範例
| 本節尚不完整 理由:無範例 |