c++ memory 头文件详细介绍
類 | |
指針特征 | |
| 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 | |
定義于命名空間?std::ranges | |
未初始化存儲 | |
| 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
總結
以上是生活随笔為你收集整理的c++ memory 头文件详细介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 无源触点(消防无源和有源的区别)
- 下一篇: s3c2440移植MQTT