命名空间
变体
操作

std::experimental::shared_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 T > class shared_ptr;
(库基础 TS)

std::experimental::shared_ptrstd::shared_ptr 的修改版本,它添加了对数组的支持。

内容

[编辑] 成员类型

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

[编辑] 成员函数

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

[编辑] 非成员函数

static_castdynamic_castconst_castreinterpret_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 函数完全相同。

创建一个共享指针,用于管理一个新对象。
(函数模板) [edit]
创建一个共享指针,用于管理使用分配器分配的新对象。
(函数模板) [edit]
如果拥有,则返回指定类型的析构器。
(函数模板) [edit]
(已在 C++20 中移除)(已在 C++20 中移除)(已在 C++20 中移除)(已在 C++20 中移除)(已在 C++20 中移除)(C++20)
与另一个 `shared_ptr` 或 `nullptr` 进行比较。
(函数模板) [edit]
将存储的指针的值输出到输出流。
(函数模板) [edit]
专门针对 std::swap 算法。
(函数模板) [edit]
专门针对 `std::shared_ptr` 的原子操作。
(函数模板) [edit]

辅助类模板

这些类模板在 `std::experimental` 命名空间中声明,并与 `std::experimental::shared_ptr` 和 std::experimental::weak_ptr 而不是 std::shared_ptrstd::weak_ptr 配合使用,但除此之外的行为与相应的 C++14 类模板完全相同。

提供共享指针和弱指针的混合类型所有者排序。
(类模板) [edit]
允许对象创建引用自身的 `shared_ptr`。
(类模板) [edit]

[edit] 示例