- hive[meta header]
- std[meta namespace]
- class[meta id-type]
- cpp26[meta cpp]
namespace std {
struct hive_limits {
std::size_t min;
std::size_t max;
constexpr hive_limits(std::size_t minimum, std::size_t maximum) noexcept
: min(minimum), max(maximum) {}
};
}hive_limitsは、hiveの要素ブロックが保持できる要素数の下限(min)と上限(max)を指定するためのクラスである。
std::hiveのコンストラクタやreshape()メンバ関数に渡すことで要素ブロックの容量制限を指定でき、block_capacity_limits()やblock_capacity_default_limits()、block_capacity_hard_limits()の戻り値として得られる。
minはmax以下でなければならず、両者は処理系が定めるハード制限(block_capacity_hard_limits())の範囲内でなければならない。範囲外の値やmin > maxとなる値を指定した場合はエラー性動作(erroneous behavior)となり、その効果は処理系定義である。指定した値がハード制限の範囲内かどうかはis_within_hard_limits()で確認できる。
| 名前 | 説明 | 対応バージョン |
|---|---|---|
min |
要素ブロックが保持できる要素数の下限 (size_t) |
C++26 |
max |
要素ブロックが保持できる要素数の上限 (size_t) |
C++26 |
| 名前 | 説明 | 対応バージョン |
|---|---|---|
(constructor) |
minをminimumで、maxをmaximumで初期化するコンストラクタ |
C++26 |
#include <hive>
#include <print>
int main()
{
// 要素ブロックが保持できる要素数を、最小8・最大64に制限する
std::hive_limits limits{8, 64};
std::hive<int> h{limits};
std::println("min={}, max={}", h.block_capacity_limits().min,
h.block_capacity_limits().max);
}- std::hive_limits[color ff0000]
- h.block_capacity_limits()[link hive/block_capacity_limits.md]
min=8, max=64
- C++26
- Clang: 22 [mark noimpl]
- GCC: 16.1 [mark noimpl]
- Visual C++: 2026 Update 2 [mark noimpl]
- P0447R28 Introduction of
std::hiveto the standard library- C++26で
hive_limitsが追加された
- C++26で