Namespaces
Variants

std::experimental:: shared_ptr

From cppreference.net
定义于头文件 <experimental/memory>
template < class T > class shared_ptr ;
(库基础TS)

std::experimental::shared_ptr std::shared_ptr 的改进版本,增加了对数组的支持。

目录

成员类型

成员类型 定义
element_type std:: remove_extent_t < T >

成员函数

构造新的 shared_ptr
(公开成员函数)
观察器
返回存储的指针
(公开成员函数)
解引用存储的指针
(公开成员函数)
提供对数组的索引访问
(公开成员函数)

非成员函数

对存储的指针应用 static_cast dynamic_cast const_cast reinterpret_cast
(函数模板)

辅助类

std::experimental::shared_ptr 的哈希支持
(类模板特化)

std:: shared_ptr 相同的成员和非成员

成员函数

以下成员函数使用 std::experimental::shared_ptr 替代 std::shared_ptr ,并使用 std::experimental::weak_ptr 替代 std::weak_ptr 。除此之外行为完全相同。

当没有更多 shared_ptr 链接到被管理对象时销毁该对象
( std::shared_ptr<T> 的公开成员函数)
赋值 shared_ptr
( std::shared_ptr<T> 的公开成员函数)
修改器
替换被管理对象
( std::shared_ptr<T> 的公开成员函数)
交换被管理对象
( std::shared_ptr<T> 的公开成员函数)
观察器
返回指向同一被管理对象的 shared_ptr 对象数量
( std::shared_ptr<T> 的公开成员函数)
(C++20 前)
检查被管理对象是否仅由当前 shared_ptr 对象管理
( std::shared_ptr<T> 的公开成员函数)
检查存储的指针是否非空
( std::shared_ptr<T> 的公开成员函数)
提供基于所有者的共享指针排序
( std::shared_ptr<T> 的公开成员函数)

非成员函数

这些非成员函数声明在 std::experimental 命名空间中,使用 std::experimental::shared_ptr 而非 std::shared_ptr ,但除此之外与对应的 C++14 函数行为相同。

创建管理新对象的共享指针
(函数模板)
创建管理使用分配器分配的新对象的共享指针
(函数模板)
返回指定类型的删除器(如果拥有)
(函数模板)
(C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20 中移除) (C++20)
与另一个 shared_ptr nullptr 进行比较
(函数模板)
将存储指针的值输出到输出流
(函数模板)
特化 std::swap 算法
(函数模板)
std::shared_ptr

示例