Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions GLOBAL_QUALIFY_LIST.txt
Original file line number Diff line number Diff line change
Expand Up @@ -168,6 +168,7 @@
* identity[link /reference/functional/identity.md]
* <future>[link /reference/future.md]
* <generator>[link /reference/generator.md]
* <hive>[link /reference/hive.md]
* <initializer_list>[link /reference/initializer_list.md]
* std::initializer_list[link /reference/initializer_list/initializer_list.md]
* il.begin()[link /reference/initializer_list/initializer_list/begin.md]
Expand Down
2 changes: 1 addition & 1 deletion lang/cpp26.md
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ C++26とは、2026年中に改訂される予定の、C++バージョンの通
## ライブラリ更新の概要
### 新ライブラリ
- 文字列エンコーディングを識別するライブラリとして、[`<text_encoding>`](/reference/text_encoding.md)を追加
- 要素のメモリ位置が安定するシーケンスコンテナのライブラリとして[`<hive>`](/reference/hive.md.nolink)を追加
- 要素のメモリ位置が安定するシーケンスコンテナのライブラリとして[`<hive>`](/reference/hive.md)を追加
- 並行処理におけるデータの参照・更新を行うRCU (Read Copy Update) のライブラリとして、[`<rcu>`](/reference/rcu.md)を追加
- 並行処理において参照中のデータが更新されないよう保護するハザードポインタのライブラリとして、[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加
- データ並列ライブラリとして、[`<simd>`](/reference/simd.md.nolink)を追加
Expand Down
2 changes: 1 addition & 1 deletion lang/cpp26/feature_test_macros.md
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@
|`__cpp_lib_fstream_native_handle`|`202306L`|[`std::basic_fstream`](/reference/fstream/basic_fstream.md)などのメンバに、ファイルのネイティブハンドルを追加|[`<fstream>`](/reference/fstream.md)|
|`__cpp_lib_function_ref`|`202604L`|[`<functional>`](/reference/functional.md)に[`std::function_ref`](/reference/functional/function_ref.md)を追加|[`<functional>`](/reference/functional.md)|
|`__cpp_lib_hazard_pointer`|`202306L`|ハザードポインタのライブラリ[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)を追加|[`<hazard_pointer>`](/reference/hazard_pointer.md.nolink)|
|`__cpp_lib_hive`|`202502L`|シーケンスコンテナのライブラリ[`<hive>`](/reference/hive.md.nolink)を追加|[`<hive>`](/reference/hive.md.nolink)|
|`__cpp_lib_hive`|`202502L`|シーケンスコンテナのライブラリ[`<hive>`](/reference/hive.md)を追加|[`<hive>`](/reference/hive.md)|
|`__cpp_lib_indirect`|`202502L`|[`<memory>`](/reference/memory.md)に[`std::indirect`](/reference/memory/indirect.md)と[`std::polymorphic`](/reference/memory/polymorphic.md)を追加|[`<memory>`](/reference/memory.md)|
|`__cpp_lib_inplace_vector`|`202603L`|容量固定の可変長配列のライブラリ[`<inplace_vector>`](/reference/inplace_vector.md)を追加|[`<inplace_vector>`](/reference/inplace_vector.md)|
|`__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)|
Expand Down
1 change: 1 addition & 0 deletions reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,7 @@
| [`<array>`](/reference/array.md) | 配列 | C++11 |
| [`<deque>`](/reference/deque.md) | 両端キュー | |
| [`<forward_list>`](/reference/forward_list.md) | 単方向リスト | C++11 |
| [`<hive>`](/reference/hive.md) | 要素のメモリ位置が安定したコンテナ | C++26 |
| [`<list>`](/reference/list.md) | 双方向リスト | |
| [`<queue>`](/reference/queue.md) | FIFOキュー | |
| [`<stack>`](/reference/stack.md) | LIFOスタック | |
Expand Down
47 changes: 47 additions & 0 deletions reference/hive.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
# hive
* hive[meta header]
* cpp26[meta cpp]

`<hive>`ヘッダでは、要素のメモリ位置が安定したシーケンスコンテナである[`hive`](hive/hive.md)を提供する。

`hive`は、要素の挿入・削除を定数時間で行いつつ、削除されなかった要素のポインタ・参照・イテレータを無効化しないコンテナである。要素は複数のメモリブロック(要素ブロック)に格納され、削除された要素の位置はスキップされる。挿入位置はコンテナが決定するため、要素の順序は指定できない。

このヘッダでは、以下の標準ヘッダをインクルードする:

- [`<initializer_list>`](initializer_list.md) (C++11)
- [`<compare>`](compare.md) (C++20)


| 名前 | 説明 | 対応バージョン |
|------|------|----------------|
| [`hive`](hive/hive.md) | 要素のメモリ位置が安定したシーケンスコンテナ (class template) | C++26 |
| [`hive_limits`](hive/hive_limits.md) | 要素ブロックの容量の下限・上限を指定する構造体 (class) | C++26 |
| [`swap`](hive/hive/swap_free.md) | 2つの`hive`オブジェクトを入れ替える (function template) | C++26 |
| [`erase`](hive/hive/erase_free.md) | 指定した値の要素を削除する (function template) | C++26 |
| [`erase_if`](hive/hive/erase_if_free.md) | 条件を満たす要素を削除する (function template) | C++26 |

`std::pmr`名前空間には、以下の型の別名が定義される。

| 名前 | 説明 | 対応バージョン |
|------|------|----------------|
| [`pmr::hive`](hive/hive.md) | アロケータとして[`pmr::polymorphic_allocator`](memory_resource/polymorphic_allocator.md)を使用する`hive`の別名 (alias template) | C++26 |


## バージョン
### 言語
- C++26

### 処理系
- [Clang](/implementation.md#clang): 22 [mark noimpl]
- [GCC](/implementation.md#gcc): 16.1 [mark noimpl]
- [Visual C++](/implementation.md#visual_cpp): 2026 Update 2 [mark noimpl]


## 関連項目
- [`std::list`](list.md)
- [`std::deque`](deque.md)


## 参照
- [P0447R28 Introduction of `std::hive` to the standard library](https://open-std.org/jtc1/sc22/wg21/docs/papers/2024/p0447r28.html)
- C++26で`<hive>`ヘッダが追加された
Loading
Loading