Skip to content

Commit 4c1bff0

Browse files
Merge pull request #1671 from cpprefjp/hive
C++26対応としてhiveを追加
2 parents 150527b + 35da899 commit 4c1bff0

48 files changed

Lines changed: 3807 additions & 2 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

GLOBAL_QUALIFY_LIST.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,7 @@
169169
* identity[link /reference/functional/identity.md]
170170
* <future>[link /reference/future.md]
171171
* <generator>[link /reference/generator.md]
172+
* <hive>[link /reference/hive.md]
172173
* <initializer_list>[link /reference/initializer_list.md]
173174
* std::initializer_list[link /reference/initializer_list/initializer_list.md]
174175
* il.begin()[link /reference/initializer_list/initializer_list/begin.md]

lang/cpp26.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,7 +133,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
133133
## ライブラリ更新の概要
134134
### 新ライブラリ
135135
- 文字列エンコーディングを識別するライブラリとして、[`<text_encoding>`](/reference/text_encoding.md)を追加
136-
- 要素のメモリ位置が安定するシーケンスコンテナのライブラリとして[`<hive>`](/reference/hive.md.nolink)を追加
136+
- 要素のメモリ位置が安定するシーケンスコンテナのライブラリとして[`<hive>`](/reference/hive.md)を追加
137137
- 並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、[`<rcu>`](/reference/rcu.md)を追加
138138
- 並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加
139139
- データ並列ライブラリとして、[`<simd>`](/reference/simd.md.nolink)を追加

lang/cpp26/feature_test_macros.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@
108108
|`__cpp_lib_fstream_native_handle`|`202306L`|[`std::basic_fstream`](/reference/fstream/basic_fstream.md)などのメンバに、ファイルのネイティブハンドルを追加|[`<fstream>`](/reference/fstream.md)|
109109
|`__cpp_lib_function_ref`|`202604L`|[`<functional>`](/reference/functional.md)[`std::function_ref`](/reference/functional/function_ref.md)を追加|[`<functional>`](/reference/functional.md)|
110110
|`__cpp_lib_hazard_pointer`|`202306L`|ハザードポインタのライブラリ[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加|[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)|
111-
|`__cpp_lib_hive`|`202502L`|シーケンスコンテナのライブラリ[`<hive>`](/reference/hive.md.nolink)を追加|[`<hive>`](/reference/hive.md.nolink)|
111+
|`__cpp_lib_hive`|`202502L`|シーケンスコンテナのライブラリ[`<hive>`](/reference/hive.md)を追加|[`<hive>`](/reference/hive.md)|
112112
|`__cpp_lib_indirect`|`202502L`|[`<memory>`](/reference/memory.md)[`std::indirect`](/reference/memory/indirect.md)[`std::polymorphic`](/reference/memory/polymorphic.md)を追加|[`<memory>`](/reference/memory.md)|
113113
|`__cpp_lib_inplace_vector`|`202603L`|容量固定の可変長配列のライブラリ[`<inplace_vector>`](/reference/inplace_vector.md)を追加|[`<inplace_vector>`](/reference/inplace_vector.md)|
114114
|`__cpp_lib_integer_sequence`|`202511L`|[`std::integer_sequence`](/reference/utility/integer_sequence.md)[構造化束縛](/lang/cpp17/structured_bindings.md)[`template for`](/lang/cpp26/expansion_statements.md)で使用できるよう、タプルインタフェースの特殊化を追加|[`<utility>`](/reference/utility.md)|

reference.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@
104104
| [`<array>`](/reference/array.md) | 配列 | C++11 |
105105
| [`<deque>`](/reference/deque.md) | 両端キュー | |
106106
| [`<forward_list>`](/reference/forward_list.md) | 単方向リスト | C++11 |
107+
| [`<hive>`](/reference/hive.md) | 要素のメモリ位置が安定したコンテナ | C++26 |
107108
| [`<list>`](/reference/list.md) | 双方向リスト | |
108109
| [`<queue>`](/reference/queue.md) | FIFOキュー | |
109110
| [`<stack>`](/reference/stack.md) | LIFOスタック | |

reference/hive.md

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
# hive
2+
* hive[meta header]
3+
* cpp26[meta cpp]
4+
5+
`<hive>`ヘッダでは、要素のメモリ位置が安定したシーケンスコンテナである[`hive`](hive/hive.md)を提供する。
6+
7+
`hive`は、要素の挿入・削除を定数時間で行いつつ、削除されなかった要素のポインタ・参照・イテレータを無効化しないコンテナである。要素は複数のメモリブロック(要素ブロック)に格納され、削除された要素の位置はスキップされる。挿入位置はコンテナが決定するため、要素の順序は指定できない。
8+
9+
このヘッダでは、以下の標準ヘッダをインクルードする:
10+
11+
- [`<initializer_list>`](initializer_list.md) (C++11)
12+
- [`<compare>`](compare.md) (C++20)
13+
14+
15+
| 名前 | 説明 | 対応バージョン |
16+
|------|------|----------------|
17+
| [`hive`](hive/hive.md) | 要素のメモリ位置が安定したシーケンスコンテナ (class template) | C++26 |
18+
| [`hive_limits`](hive/hive_limits.md) | 要素ブロックの容量の下限・上限を指定する構造体 (class) | C++26 |
19+
| [`swap`](hive/hive/swap_free.md) | 2つの`hive`オブジェクトを入れ替える (function template) | C++26 |
20+
| [`erase`](hive/hive/erase_free.md) | 指定した値の要素を削除する (function template) | C++26 |
21+
| [`erase_if`](hive/hive/erase_if_free.md) | 条件を満たす要素を削除する (function template) | C++26 |
22+
23+
`std::pmr`名前空間には、以下の型の別名が定義される。
24+
25+
| 名前 | 説明 | 対応バージョン |
26+
|------|------|----------------|
27+
| [`pmr::hive`](hive/hive.md) | アロケータとして[`pmr::polymorphic_allocator`](memory_resource/polymorphic_allocator.md)を使用する`hive`の別名 (alias template) | C++26 |
28+
29+
30+
## バージョン
31+
### 言語
32+
- C++26
33+
34+
### 処理系
35+
- [Clang](/implementation.md#clang): 22 [mark noimpl]
36+
- [GCC](/implementation.md#gcc): 16.1 [mark noimpl]
37+
- [Visual C++](/implementation.md#visual_cpp): 2026 Update 2 [mark noimpl]
38+
39+
40+
## 関連項目
41+
- [`std::list`](list.md)
42+
- [`std::deque`](deque.md)
43+
44+
45+
## 参照
46+
- [P0447R28 Introduction of `std::hive` to the standard library](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0447r28.html)
47+
- C++26で`<hive>`ヘッダが追加された

0 commit comments

Comments
 (0)