std::ranges::approximately_sized_range
ja.cppreference.net より
| ヘッダで定義 <ranges>
|
||
template< class T >
concept approximately_sized_range = ranges::range<T> &&
requires(T& t) {
ranges::reserve_hint(t);
};
|
(C++26以上) | |
このapproximately_sized_rangeコンセプトは、range型がreserve_hint関数を使用して定数時間でサイズを推定できることを要件とします。
セマンティック要件
型
std::
remove_reference_t
<
T
>
の左辺値
t
が与えられたとき、
T
が
approximately_sized_range
をモデル化するのは、次の条件が満たされる場合に限ります
- ranges :: reserve_hint ( t )
-
- 償却定数時間の計算量を持ち、
- 等価性保存 式から観測可能な方法で t の値を変更せず、
- 値が非負であり ranges:: range_difference_t < T > で表現可能である
-
if
ranges::
iterator_t
<
T
>
が
forward_iteratorをモデル化する場合、 ranges :: reserve_hint ( t ) は ranges:: begin ( t ) の評価結果に関わらず適切に定義される(つまり、シングルパスでおおよそのサイズがわかる範囲は、beginの最初の呼び出し前のみreserve_hintの呼び出しをサポートする可能性があるが、フォワード範囲は常にサイズをサポートしなければならない)。
注記
| 機能テスト マクロ | 値 | 標準 | 機能 |
|---|---|---|---|
__cpp_lib_ranges_reserve_hint
|
202502L
|
(C++26) | ranges::approximately_sized_range |
例
|
このセクションは不完全です
理由: 例がありません |
関連項目
|
(C++20)
|
範囲がそのサイズを定数時間で知ることができることを指定する
(コンセプト) |