Namespaces
Variants

std::ranges:: approximately_sized_range

From cppreference.net
Ranges library
Range adaptors
定義済みヘッダー <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

関連項目

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