命名空间
变体
操作

std::experimental::observer_ptr

来自 cppreference.cn
 
 
实验性
技术规范
文件系统库 (文件系统 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 的特化满足 可复制构造 (CopyConstructible)可复制赋值 (CopyAssignable) 的要求。

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

内容

[编辑] 成员类型

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

[编辑] 成员函数

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

(公共成员函数) [编辑]

[编辑] 非成员函数
创建一个观察对象的 observer_ptr
operator==operator!=operator<operator<=operator>operator>=
与另一个 observer_ptrnullptr 比较
std::experimental::swap(std::experimental::observer_ptr)
特化 swap 算法

(函数模板) [编辑]

[编辑] 辅助类
std::hash<std::experimental::observer_ptr>
observer_ptr 的哈希支持

(类模板特化) [编辑]

原因:没有示例