Namespaces
Variants

std::ranges::approximately_sized_range

ja.cppreference.net より
 
 
Ranges ライブラリ
範囲アダプタ
 
ヘッダで定義 <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 )
  • 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

例

関連項目

範囲がそのサイズを定数時間で知ることができることを指定する
(コンセプト)