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);
}
出力例
min=8, max=64
バージョン
言語
- C++26
処理系
- Clang: 22 ❌
- GCC: 16.1 ❌
- Visual C++: 2026 Update 2 ❌
関連項目
参照
- P0447R28 Introduction of
std::hiveto the standard library- C++26で
hive_limitsが追加された
- C++26で