<new>
ヘッダは、プログラムが動的に記憶域を確保し、管理するための機能を定義し、記憶域の管理のエラー報告(例外の送出)についても定義する。このヘッダはグローバルネームスペースのnew
演算子およびdelete
演算子をオーバーロードする。placement new を行いたい場合などに用いる。
本ヘッダはフリースタンディング環境でも提供される。
型
名前 | 説明 | 対応バージョン |
---|---|---|
bad_alloc |
何らかの理由で記憶域の動的確保に失敗するなど、get_new_handler() がnullptr を返した場合にスローされる例外(class) |
|
bad_array_new_length |
動的に記憶域を確保しようとする配列の長さが0未満または処理系の最大値以上の場合にスローされる例外(class) | C++11 |
align_val_t |
デフォルトよりも大きなアライメントを要求するとき、new に渡されるアライメント値の型 |
C++17 |
nothrow_t |
例外をスローしないためのstd::nothrow の型 |
|
new_handler |
new 失敗時に呼ばれる関数の型 |
|
destroying_delete_t |
destroying operator deleteを定義するためのタグ型 | C++20 |
関数
名前 | 説明 | 対応バージョン |
---|---|---|
get_new_handler |
new 失敗時に呼ばれる関数を取得する(function) |
C++11 |
launder |
置き換えられたオブジェクトに適格にアクセスする(function) | C++17 |
set_new_handler |
new 失敗時に呼ばれる関数を設定する(function) |
|
operator new |
動的に記憶域を確保する(function) | |
operator new[] |
動的に配列の記憶域を確保する(function) | |
operator delete |
動的に確保した記憶域を解放する(function) | |
operator delete[] |
動的に確保した配列の記憶域を解放する(function) |
干渉サイズ
名前 | 説明 | 対応バージョン |
---|---|---|
hardware_destructive_interference_size |
2つのオブジェクトに並行アクセスする際に、パフォーマンス低下を避けられる最小アライメントサイズ (variable) | C++17 |
hardware_constructive_interference_size |
2つのオブジェクトに一時局所的にアクセスできる最大サイズ (variable) | C++17 |