类 | |
指针特征 | |
pointer_traits (C++11) | 提供关于指针式类型的信息 (类模板) |
垃圾收集器支持 | |
pointer_safety (C++11) | 列出指针安全模式 (枚举) |
分配器 | |
allocator | 默认的分配器 (类模板) |
allocator_traits (C++11) | 提供关于分配器类型的信息 (类模板) |
allocator_arg_t (C++11) | 标签类型,用于选择具分配器的构造函数重载 (类) |
allocator_arg (C++11) | 用于选择具分配器的构造函数的 std::allocator_arg_t 对象 (常量) |
uses_allocator (C++11) | 检查指定的类型是否支持使用分配器的构造 (类模板) |
未初始化存储 | |
raw_storage_iterator (C++17 中弃用)(C++20 中移除) | 允许标准算法存储结果于未初始化内存的迭代器 (类模板) |
智能指针 | |
unique_ptr (C++11) | 拥有独有对象所有权语义的智能指针 (类模板) |
shared_ptr (C++11) | 拥有共享对象所有权语义的智能指针 (类模板) |
weak_ptr (C++11) | 到 std::shared_ptr 所管理对象的弱引用 (类模板) |
auto_ptr (C++17 中移除) | 拥有严格对象所有权语义的智能指针 (类模板) |
辅助类 | |
std::atomic<std::shared_ptr> (C++20) | 原子共享指针 (类模板特化) |
std::atomic<std::weak_ptr> (C++20) | 原子弱指针 (类模板特化) |
owner_less (C++11) | 提供基于所有者的,共享指针和弱指针的混合类型的排序 (类模板) |
enable_shared_from_this (C++11) | 允许对象创建指代自身的 shared_ptr (类模板) |
bad_weak_ptr (C++11) | 访问指向已销毁对象的 weak_ptr 时抛出的异常(类) |
default_delete (C++11) | unique_ptr 的默认删除器(类模板) |
std::hash<std::unique_ptr> (C++11) | std::unique_ptr 的散列支持 (类模板特化) |
std::hash<std::shared_ptr> (C++11) | std::shared_ptr 的散列支持 (类模板特化) |
函数 | |
杂项 | |
to_address (C++20) | 从指针式类型获得裸指针 (函数模板) |
addressof (C++11) | 获得对象的实际地址,即使其重载了 & 运算符 (函数模板) |
align (C++11) | 对齐缓冲区中的指针 (函数) |
assume_aligned (C++20) | 告知编译器指针已对齐 (函数模板) |
垃圾收集器支持 | |
declare_reachable (C++11) | 声明一个对象不能被回收 (函数) |
undeclare_reachable (C++11) | 声明一个对象可以被回收 (函数模板) |
declare_no_pointers (C++11) | 声明该内存区域不含可追踪指针 (函数) |
undeclare_no_pointers (C++11) | 取消 std::declare_no_pointers 的效果 (函数) |
get_pointer_safety (C++11) | 返回当前的指针安全模式 (函数) |
未初始化存储 | |
uninitialized_copy | 将范围内的对象复制到未初始化的内存区域 (函数模板) |
uninitialized_copy_n (C++11) | 将指定数量的对象复制到未初始化的内存区域 (函数模板) |
uninitialized_fill | 复制一个对象到以范围定义的未初始化内存区域 (函数模板) |
uninitialized_fill_n | 复制一个对象到以起点和计数定义的未初始化内存区域 (函数模板) |
uninitialized_move (C++17) | 移动一个范围的对象到未初始化的内存区域 (函数模板) |
uninitialized_move_n (C++17) | 移动一定数量对象到未初始化内存区域 (函数模板) |
uninitialized_default_construct (C++17) | 在范围所定义的未初始化的内存区域以默认初始化构造对象 (函数模板) |
uninitialized_default_construct_n (C++17) | 在起始和计数所定义的未初始化内存区域用默认初始化构造对象 (函数模板) |
uninitialized_value_construct (C++17) | 在范围所定义的未初始化内存中用值初始化构造对象 (函数模板) |
uninitialized_value_construct_n (C++17) | 在起始和计数所定义的未初始化内存区域以值初始化构造对象 (函数模板) |
destroy_at (C++17) | 销毁在给定地址的对象 (函数模板) |
destroy (C++17) | 销毁一个范围中的对象 (函数模板) |
destroy_n (C++17) | 销毁范围中一定数量的对象 (函数模板) |
get_temporary_buffer (C++17 中弃用)(C++20 中移除) | 获得未初始化存储 (函数模板) |
return_temporary_buffer (C++17 中弃用)(C++20 中移除) | 释放未初始化存储 (函数模板) |
智能指针非成员操作 | |
make_uniquemake_unique_for_overwrite (C++14)(C++20) | 创建管理一个新对象的独占指针 (函数模板) |
operator==operator!=operator<operator<=operator>operator>=operator<=> (C++20 中移除)(C++20) | 与另一个 unique_ptr 或 nullptr 进行比较(函数模板) |
make_sharedmake_shared_for_overwrite (C++20) | 创建管理一个新对象的共享指针 (函数模板) |
allocate_sharedallocate_shared_for_overwrite (C++20) | 创建管理一个用分配器分配的新对象的共享指针 (函数模板) |
static_pointer_castdynamic_pointer_castconst_pointer_castreinterpret_pointer_cast (C++17) | 应用 static_cast、dynamic_cast、const_cast 或 reinterpret_cast 到被存储指针 (函数模板) |
get_deleter | 返回指定类型中的删除器,若其拥有 (函数模板) |
operator==operator!=operator<operator<=operator>operator>=operator<=> (C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20 中移除)(C++20) | 与另一个 shared_ptr 或 nullptr 进行比较(函数模板) |
operator<< | 将存储的指针的值输出到输出流 (函数模板) |
std::swap(std::unique_ptr) (C++11) | 特化 std::swap 算法 (函数模板) |
std::swap(std::weak_ptr) (C++11) | 特化 std::swap 算法 (函数模板) |
std::swap(std::shared_ptr) (C++11) | 特化 std::swap 算法 (函数模板) |
Niebloid | |
定义于命名空间 | |
未初始化存储 | |
ranges::uninitialized_copy (C++20) | 复制元素范围到未初始化的内存区域 (niebloid) |
ranges::uninitialized_copy_n (C++20) | 复制一定量元素到未初始化的内存区域 (niebloid) |
ranges::uninitialized_fill (C++20) | 复制一个对象到范围所定义的未初始化的内存区域 (niebloid) |
ranges::uninitialized_fill_n (C++20) | 复制一个对象到起始与计数所定义的未初始化的内存区域 (niebloid) |
ranges::uninitialized_move (C++20) | 移动对象范围到未初始化的内存区域 (niebloid) |
ranges::uninitialized_move_n (C++20) | 移动一定量对象到未初始化的内存区域 (niebloid) |
ranges::uninitialized_default_construct (C++20) | 在范围所定义的未初始化的内存区域以默认初始化构造对象 (niebloid) |
ranges::uninitialized_default_construct_n (C++20) | 在起始与计数所定义的未初始化的内存区域以默认初始化构造对象 (niebloid) |
ranges::uninitialized_value_construct (C++20) | 在范围所定义的未初始化的内存区域以值初始化构造对象 (niebloid) |
ranges::uninitialized_value_construct_n (C++20) | 在起始与计数所定义的未初始化的内存区域以值初始化构造对象 (niebloid) |
ranges::destroy_at (C++20) | 销毁位于给定地址的元素 (niebloid) |
ranges::destroy (C++20) | 销毁范围中的元素 (niebloid) |
ranges::destroy_n (C++20) | 销毁范围中一定量的元素 (niebloid) |
参考链接
- https://zh.cppreference.com/w/cpp/header/memory