Namespaces
Variants

std::experimental:: observer_ptr

From cppreference.net
定义于头文件 <experimental/memory>
template < class W >
class observer_ptr ;
(库基础技术规范 v2)

std::experimental::observer_ptr 是一种非拥有式指针,或称 观察者 。该观察者存储指向第二个对象(称为 被观察对象 )的指针。 observer_ptr 也可以不关联任何被观察对象。

观察者不以任何方式对被观察对象负责;观察者与其观察的对象之间不存在固有关系。

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

observer_ptr 的特化满足 CopyConstructible CopyAssignable 的要求。

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

目录

成员类型

成员类型 定义
element_type W ,此 observer_ptr 所监视对象的类型

成员函数

构造新的 observer_ptr
(公开成员函数)
(destructor)
(implicitly declared)
销毁 observer_ptr
(公开成员函数)
operator=
(implicitly declared)
隐式声明的复制和移动赋值运算符,用于赋值存储的指针
(公开成员函数)
修改器
返回指向被监视对象的指针并停止监视该对象
(公开成员函数)
替换被监视对象
(公开成员函数)
交换被监视对象
(公开成员函数)
观察器
返回指向被监视对象的指针
(公开成员函数)
检查是否存在关联的被监视对象
(公开成员函数)
解引用指向被监视对象的指针
(公开成员函数)
转换
显式转换函数到存储的指针
(公开成员函数)

非成员函数

创建监视对象的 observer_ptr
(函数模板)
与另一个 observer_ptr 或与 nullptr 进行比较
(函数模板)
特化 swap 算法
(函数模板)

辅助类

observer_ptr 的哈希支持
(类模板特化)

示例