Standard library header <new>
From cppreference.net
このヘッダは 動的メモリ管理 ライブラリの一部であり、特に 低レベルメモリ管理 機能を提供します。
クラス |
||
|
メモリ確保が失敗したときにスローされる例外
(クラス) |
||
|
(C++11)
|
無効な長さの配列の確保時にスローされる例外
(クラス) |
|
|
(C++17)
|
アライメント対応の確保・解放関数にアライメントを渡すために使用される型
(列挙型) |
|
型 |
||
|
新しいハンドラの関数ポインタ型
(typedef) |
||
タグ |
||
|
例外を投げない
確保関数
を選択するために使用されるタグ
(タグ) |
||
|
operator delete
の破壊的削除オーバーロードを選択するために使用されるタグ
(タグ) |
||
定数 |
||
|
偽共有を避けるための最小オフセット
真の共有を促進するための最大オフセット (定数) |
||
関数 |
||
|
確保関数
(関数) |
||
|
解放関数
(関数) |
||
|
(C++11)
|
現在のnewハンドラを取得する
(関数) |
|
|
新しいハンドラを登録する
(関数) |
||
|
(C++17)
|
ポインタ最適化バリア
(関数テンプレート) |
|
概要
// すべてフリースタンディング namespace std { // ストレージ割り当てエラー class bad_alloc; class bad_array_new_length; struct destroying_delete_t { explicit destroying_delete_t() = default; }; inline constexpr destroying_delete_t destroying_delete{}; // グローバル operator new 制御 enum class align_val_t : size_t { }; struct nothrow_t { explicit nothrow_t() = default; }; extern const nothrow_t nothrow; using new_handler = void (*)(); new_handler get_new_handler() noexcept; new_handler set_new_handler(new_handler new_p) noexcept; // ポインター最適化バリア template<class T> constexpr T* launder(T* p) noexcept; // ハードウェアインターフェアランスサイズ inline constexpr size_t hardware_destructive_interference_size = /* 実装定義 */; inline constexpr size_t hardware_constructive_interference_size = /* 実装定義 */; } // ストレージの割り当てと解放 void* operator new(std::size_t size); void* operator new(std::size_t size, std::align_val_t alignment); void* operator new(std::size_t size, const std::nothrow_t&) noexcept; void* operator new(std::size_t size, std::align_val_t alignment, const std::nothrow_t&) noexcept; void operator delete(void* ptr) noexcept; void operator delete(void* ptr, std::size_t size) noexcept; void operator delete(void* ptr, std::align_val_t alignment) noexcept; void operator delete(void* ptr, std::size_t size, std::align_val_t alignment) noexcept; void operator delete(void* ptr, const std::nothrow_t (注:指定された条件により、HTMLタグ・属性は保持され、タグ内のテキスト(本例では該当せず)は翻訳対象外、C++固有用語は翻訳せず、元のフォーマットを維持しています)&) noexcept; void operator delete(void* ptr, std::align_val_t alignment, const std::nothrow_t (注:指定された条件により、HTMLタグ・属性は保持され、C++固有用語は翻訳対象外のため、元のテキストをそのまま保持しています)&) noexcept; void* operator new[](std::size_t size); void* operator new[] (注:元のテキストは閉じ括弧のみのため、日本語でも同じ記号を保持します)(std::size_t size, std::align_val_t alignment); void* operator new[](std::size_t size, const std::nothrow_t (注:指定された条件により、HTMLタグ・属性は保持され、タグ内のテキスト(本例では該当なし)は翻訳対象外、C++固有用語(std::nothrow_t)は非翻訳のため、出力は原文と同一となります)&) noexcept; void* operator new[](std::size_t size, std::align_val_t alignment, const std::nothrow_t (注:指定された条件により、HTMLタグ・属性は保持され、C++固有用語は翻訳対象外のため、元のテキストをそのまま保持しています)&) noexcept; void operator delete[](void* ptr) noexcept; void operator delete[](void* ptr, std::size_t size) noexcept; void operator delete[](void* ptr, std::align_val_t alignment) noexcept; void operator delete[] (注:元のテキストは閉じ括弧のみのため、日本語でも同じ記号を保持します)(void* ptr, std::size_t size, std::align_val_t alignment) noexcept; void operator delete[] (注:元のテキストは閉じ括弧のみのため、日本語でも同じ記号を保持します)(void* ptr, const std::nothrow_t&) noexcept; void operator delete[](void* ptr, std::align_val_t alignment, const std::nothrow_t (注:指定された条件により、HTMLタグ・属性は保持され、C++固有用語は翻訳対象外のため、元のテキストをそのまま保持しています)&) noexcept; constexpr void* operator new(std::size_t size, void* ptr) noexcept; constexpr void* operator new[](std::size_t size, void* ptr) noexcept; void operator delete(void* ptr, void*) noexcept; void operator delete[] (注:元のテキストは閉じ括弧のみのため、日本語でも同じ記号を保持します)(void* ptr, void*) noexcept;
クラス std::bad_alloc
namespace std { class bad_alloc : public exception { public: // 特殊メンバ関数の仕様については説明を参照 constexpr const char* what() const noexcept override; }; }
クラス std::bad_array_new_length
namespace std { class bad_array_new_length : public bad_alloc { public: // 特殊メンバ関数の仕様については説明を参照 constexpr const char* what() const noexcept override; }; }