Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
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