|
1 | 1 | # memory |
2 | 2 | * memory[meta header] |
3 | 3 |
|
4 | | -`<memory>`ヘッダでは、メモリアロケータ、未初期化領域に関する関数群、スマートポインタ、ガベージコレクションを作るためのユーティリティ関数といった、メモリを扱うための機能を定義する。 |
| 4 | +`<memory>`ヘッダでは、メモリアロケータ、未初期化領域に関する関数群、スマートポインタ、アライメントに関するユーティリティ関数といった、メモリを扱うための機能を定義する。 |
5 | 5 |
|
6 | 6 | このヘッダでは、以下の標準ヘッダをインクルードする: |
7 | 7 |
|
|
121 | 121 | | `atomic_compare_exchange_strong_explicit` | 強い比較でメモリオーダーを指定して、`shared_ptr`の値の入れ替えをアトミックに行う (function template) | C++11<br/> C++20で非推奨 | |
122 | 122 |
|
123 | 123 |
|
| 124 | +## ポインタのユーティリティ |
| 125 | + |
| 126 | +| 名前 | 説明 | 対応バージョン | |
| 127 | +|------|------|----------------| |
| 128 | +| [`pointer_traits`](memory/pointer_traits.md) | ポインタの型特性(class template) | C++11 | |
| 129 | +| [`to_address`](memory/to_address.md) | ポインタと見なせるオブジェクトからアドレスを取得する (function template) | C++20 | |
| 130 | +| [`addressof`](memory/addressof.md) | 変数のアドレスを必ず取得する(function template) | C++11 | |
| 131 | +| [`align`](memory/align.md) | アライメント調整された領域を得る(function) | C++11 | |
| 132 | +| [`assume_aligned`](memory/assume_aligned.md) | コンパイラへアライメントのヒントを与える(function template) | C++20 | |
| 133 | +| [`is_sufficiently_aligned`](memory/is_sufficiently_aligned.md) | ポインタのアライメントを判定する(function template) | C++26 | |
| 134 | + |
| 135 | + |
124 | 136 | ## ガベージコレクション支援(C++23で削除) |
125 | 137 |
|
126 | 138 | | 名前 | 説明 | 対応バージョン | |
127 | | -|--------------------------------------------------|--------------------------------------------|-------| |
| 139 | +|------|------|----------------| |
128 | 140 | | [`pointer_safety`](memory/pointer_safety.md) | ポインタ安全性について実装/挙動を示す列挙型(enum class) | C++11<br/>C++23で削除 | |
129 | 141 | | [`get_pointer_safety`](memory/get_pointer_safety.md) | 処理系の、ポインタ安全性についての実装/挙動を取得する(function) | C++11<br/>C++23で削除 | |
130 | 142 | | [`declare_reachable`](memory/declare_reachable.md) | ポインタが到達可能であることを宣言する(function) | C++11<br/>C++23で削除 | |
|
133 | 145 | | [`undeclare_no_pointers`](memory/undeclare_no_pointers.md) | `declare_no_pointers`で宣言された範囲を無効化する(function) | C++11<br/>C++23で削除 | |
134 | 146 |
|
135 | 147 |
|
136 | | -## ポインタのユーティリティ |
137 | | - |
138 | | -| 名前 | 説明 | 対応バージョン | |
139 | | -|----------------------------------------------|-------------------------------------------------|-------| |
140 | | -| [`pointer_traits`](memory/pointer_traits.md) | ポインタの型特性(class template) | C++11 | |
141 | | -| [`to_address`](memory/to_address.md) | ポインタと見なせるオブジェクトからアドレスを取得する (function template) | C++20 | |
142 | | -| [`addressof`](memory/addressof.md) | 変数のアドレスを必ず取得する(function template) | C++11 | |
143 | | -| [`align`](memory/align.md) | アライメント調整された領域を得る(function) | C++11 | |
144 | | -| [`assume_aligned`](memory/assume_aligned.md) | コンパイラへアライメントのヒントを与える(function template) | C++20 | |
145 | | - |
146 | | - |
147 | 148 | ## 参照 |
148 | 149 | - [N4190 Removing `auto_ptr`, `random_shuffle()`, And Old `<functional>` Stuff](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2014/n4190.htm) |
149 | 150 | - [P0718R2 Revising `atomic_shared_ptr` for C++20](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2017/p0718r2.html) |
|
0 commit comments