最終更新日時:
が更新

履歴 編集

<memory>

memory

<memory>ヘッダでは、メモリアロケータ、未初期化領域に関する関数群、スマートポインタ、ガベージコレクションを作るためのユーティリティ関数といった、メモリを扱うための機能を定義する。

メモリアロケータ

名前 説明 対応バージョン
allocator メモリアロケータの標準実装(class template)
allocator_traits アロケータクラスへの間接的なアクセス(class template) C++11
allocator_arg_t アロケータを引数として渡す際の、オーバーロード解決のためのタグ(class) C++11
allocator_arg アロケータを引数として渡す際の、オーバーロード解決のためのタグ(constant value) C++11
uses_allocator Tがアロケータを使用するか調べる C++11

未初期化領域に対する操作

名前 説明 対応バージョン
raw_storage_iterator 未初期化領域に書き込むための出力イテレータ(class template) C++17から非推奨
uninitialized_copy 未初期化領域の範囲を配置newで初期化して出力する(function template)
uninitialized_copy_n 未初期化領域の範囲のうち、先頭N個の要素を配置newで初期化して出力する(function template) C++11
uninitialized_fill 未初期化領域の範囲を、指定された値で配置newする(function template)
uninitialized_fill_n 未初期化領域の範囲のうち、先頭N個の要素を指定された値で配置newする(function template)
get_temporary_buffer 短期的なメモリ領域を確保する(function template) C++17から非推奨
return_temporary_buffer get_temporary_buffer()で確保された領域を解放する(function) C++17から非推奨

スマートポインタ

名前 説明 対応バージョン
shared_ptr 共有方式スマートポインタ(class template) C++11
make_shared shared_ptrを構築するヘルパ関数(function template) C++11
allocate_shared アロケータを指定してshared_ptrを構築するヘルパ関数(function template) C++11
enable_shared_from_this thisを指すshared_ptrを可能にする(class template) C++11
weak_ptr shared_ptrのインスタンス監視(class template) C++11
bad_weak_ptr weak_ptrから投げられる例外クラス(class template) C++11
owner_less 所有権ベースの小なり比較(class template) C++11
unique_ptr 専有方式スマートポインタ(class template) C++11
make_unique unique_ptrを構築するヘルパ関数(function template) C++14
default_delete unique_ptrのデフォルトの削除子(class template) C++11
auto_ptr 古い専有方式スマートポインタ(class template) C++11から非推奨
C++17で削除

ガベージコレクション支援

名前 説明 対応バージョン
pointer_safety ポインタ安全性について実装/挙動を示す列挙型(enum class) C++11
get_pointer_safety 処理系の、ポインタ安全性についての実装/挙動を取得する(function) C++11
declare_reachable ポインタが到達可能であることを宣言する(function) C++11
undeclare_reachable ポインタが到達可能であるという宣言を削除する(function template) C++11
declare_no_pointers 指定された範囲のポインタが、追跡可能ではないことを宣言する(function) C++11
undeclare_no_pointers declare_no_pointersで宣言された範囲を無効化する(function) C++11

ポインタのユーティリティ

名前 説明 対応バージョン
pointer_traits ポインタの型特性(class template) C++11
addressof 変数のアドレスを必ず取得する(function template) C++11
align アライメント調整された領域を得る(function) C++11

参照