命名空间
变体
操作

std::experimental::observer_ptr

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

std::experimental::observer_ptr 是一个非拥有的指针,或者说是*观察器*。观察器存储一个指向第二个对象(称为*被观察对象*)的指针。一个 observer_ptr 也可以没有被观察对象。

观察器不以任何方式对被观察对象负责;观察器和它所观察的对象之间没有固有的关系。

它旨在作为原始指针类型的一个接近的直接替代品,其优点是,作为一个词汇表类型,它无需代码阅读者进行详细分析即可表明其预期用途。

observer_ptr 的特化满足 CopyConstructibleCopyAssignable 的要求。

类型要求
-
W 不应是引用类型,但可以是未完全类型。

目录

[编辑] 成员类型

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

[编辑] 成员函数

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

[编辑] 非成员函数

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

[编辑] 辅助类

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

[编辑] 示例