命名空间
变体
操作

std::experimental::observer_ptr

来自 cppreference.com
 
 
实验性
技术规范
文件系统库 (文件系统 TS)
库基础 (库基础 TS)
库基础 2 (库基础 TS v2)
库基础 3 (库基础 TS v3)
并行扩展 (并行 TS)
并行扩展 2 (并行 TS v2)
并发扩展 (并发 TS)
并发扩展 2 (并发 TS v2)
概念 (概念 TS)
范围 (范围 TS)
反射 (反射 TS)
数学特殊函数 (特殊函数 TR)
实验性 非 TS
模式匹配
线性代数
std::execution
契约
二维图形
 
 
 
定义在头文件 <experimental/memory>
template< class W >
class observer_ptr;
(库基础 TS v2)

std::experimental::observer_ptr 是一个非拥有指针,或称观察者。观察者存储指向另一个对象的指针,称为被观察对象。observer_ptr 也可能没有被观察对象。

观察者不会以任何方式负责被观察对象;观察者和它观察的对象之间没有内在联系。

它旨在作为原始指针类型的直接替代,优点是,作为词汇类型,它表明了其预期的用途,而不需要代码阅读者进行详细分析。

observer_ptr 的特化满足 可复制构造可复制赋值 的需求。

类型需求
-
W 不能是引用类型,但可以是未完成类型。

内容

[编辑] 成员类型

成员类型 定义
element_type W,此 observer_ptr 观察的对象的类型

[编辑] 成员函数

构造一个新的 observer_ptr
(公有成员函数) [编辑]
(析构函数)
(隐式声明)
析构一个 observer_ptr
(公有成员函数) [编辑]
operator=
(隐式声明)
隐式声明的复制和移动赋值运算符,用于赋值存储的指针
(公有成员函数) [编辑]
修改器
返回指向被观察对象的指针,并停止观察该对象
(公有成员函数) [编辑]
替换被观察的对象
(公有成员函数) [编辑]
交换被观察对象
(公有成员函数) [编辑]
观察者
返回指向被观察对象的指针
(公有成员函数) [编辑]
检查是否关联了被观察对象
(公有成员函数) [编辑]
取消对指向被观察对象的指针的引用
(公有成员函数) [编辑]
转换
显式转换为存储的指针
(公有成员函数) [编辑]

[编辑] 非成员函数

创建一个观察对象的 observer_ptr
(函数模板) [编辑]
与另一个 observer_ptr 或与 nullptr 进行比较
(函数模板) [编辑]
专门化 swap 算法
(函数模板) [编辑]

[编辑] 辅助类

observer_ptr 的哈希支持
(类模板特化) [编辑]

[编辑] 示例