Namespaces
Variants

std::ranges:: views:: to_input, std::ranges:: to_input_view

From cppreference.net
Ranges library
Range adaptors
ヘッダーで定義 <ranges>
template < ranges:: input_range V >

requires ranges:: view < V >
class to_input_view

: public ranges:: view_interface < to_input_view < V >>
(1) (C++26以降)
namespace views {

inline constexpr /* 未規定 */ to_input = /* 未規定 */ ;

}
(2) (C++26以降)
呼び出しシグネチャ
template < ranges:: viewable_range R >

requires /* 下記参照 */

constexpr ranges:: view auto to_input ( R && r ) ;
(C++26以降)
1) 基となる view input_range のみとして、 common_range ではないビューとして表現する範囲アダプタ。
2) RangeAdaptorObject e を部分式とし、 T decltype ( e ) とする。このとき、式 views :: to_input ( e ) は以下のいずれかと 式等価 である:
  • views:: all ( e ) (ただし、これが整形式な式であり、かつ以下の条件がすべて true である場合):
  • それ以外の場合、 to_input_view { e }

したがって、 to_input_view は、 input_range よりも強い範囲コンセプトを決してモデルしません。特に、以下のすべてをモデルしません:

さらに、 to_input_view common_range をモデル化しません。しかしながら、基盤となるビュー V がそれぞれのコンセプトをモデル化する場合には、 borrowed_range constant_range 、および sized_range をモデル化します。

目次

データメンバ

メンバー 説明
V base_ (private) 基盤となるビュー
( 説明専用メンバーオブジェクト* )

メンバー関数

to_input_view を構築する
(public member function)
基盤となる(適応された)ビューのコピーを返す
(public member function)
先頭を指すイテレータを返す
(public member function)
終端を指すイテレータまたはセンチネルを返す
(public member function)
要素数を返す。基盤となる(適応された)範囲が sized_range を満たす場合にのみ提供される。
(public member function)
std::ranges::view_interface から継承
派生ビューが空かどうかを返す。 sized_range または forward_range を満たす場合にのみ提供される。
( std::ranges::view_interface<D> のpublic member function)
(C++23)
範囲の先頭を指す定数イテレータを返す
( std::ranges::view_interface<D> のpublic member function)
(C++23)
範囲の定数イテレータ用センチネルを返す
( std::ranges::view_interface<D> のpublic member function)
派生ビューが空でないかどうかを返す。 ranges::empty が適用可能な場合にのみ提供される。
( std::ranges::view_interface<D> のpublic member function)
派生ビューのデータのアドレスを取得する。そのイテレータ型が contiguous_iterator を満たす場合にのみ提供される。
( std::ranges::view_interface<D> のpublic member function)
派生ビューの最初の要素を返す。 forward_range を満たす場合に提供される。
( std::ranges::view_interface<D> のpublic member function)
派生ビューの最後の要素を返す。 bidirectional_range かつ common_range を満たす場合にのみ提供される。
( std::ranges::view_interface<D> のpublic member function)
派生ビューの n th 番目の要素を返す。 random_access_range を満たす場合にのみ提供される。
( std::ranges::view_interface<D> のpublic member function)

std::ranges::to_input_view:: to_input_view

to_input_view ( ) requires std:: default_initializable < V > = default ;
(1) (C++26以降)
constexpr explicit to_input_view ( V base ) ;
(2) (C++26以降)
1) デフォルトメンバ初期化子( = V ( ) )を通じて base_ を値初期化します。
2) base_ std :: move ( base ) で初期化します。

パラメータ

base - ビュー

(注:元のテキストに翻訳対象となる可読テキストが含まれていないため、HTML構造のみを保持したまま出力しています)

std::ranges::to_input_view:: base

constexpr V base ( ) const & requires std:: copy_constructible < V > ;
(1) (C++26以降)
constexpr V base ( ) && ;
(2) (C++26以降)
1) 基となるビューから結果をコピー構築します。 return base_ ; と等価です。
2) 基となるビューから結果をムーブ構築します。 return std :: move ( base_ ) ; と等価です。

std::ranges::to_input_view:: begin

constexpr auto begin ( ) requires ( ! __simple_view < V > ) ;
(1) (C++26以降)
constexpr auto begin ( ) const requires ranges:: range < const V > ;
(2) (C++26以降)
1) 次と等価: return /*iterator*/ < false > ( ranges:: begin ( base_ ) ) ;
2) 次と等価: return /*iterator*/ < true > ( ranges:: begin ( base_ ) ) ;

std::ranges::to_input_view:: end

constexpr auto end ( ) requires ( ! __simple_view < V > ) ;
(1) (C++26以降)
constexpr auto end ( ) const requires ranges:: range < const V > ;
(2) (C++26以降)
1,2) 次と等価: return ranges:: end ( base_ ) ;

(注:指定されたテキストブロック内に翻訳対象となる可読テキストが存在しないため、HTML構造はそのまま保持されています)

std::ranges::to_input_view:: size

constexpr auto size ( ) requires ranges:: sized_range < V > ;
(1) (C++26以降)
constexpr auto size ( ) const requires ranges:: sized_range < const V > ;
(2) (C++26以降)
1,2) 以下と等価: return ranges:: size ( base_ ) ;

推論ガイド

template < class R >
to_input_view ( R && ) - > to_input_view < views:: all_t < R >> ;
(C++26以降)

ネストされたクラス

イテレータ型
( 説明専用メンバークラステンプレート* )

ヘルパーテンプレート

template < class T >

constexpr bool enable_borrowed_range < std :: ranges :: to_input_view < T >> =

ranges:: enable_borrowed_range < T > ;
(C++26 以降)

この std :: ranges:: enable_borrowed_range の特殊化は、基になるビューが borrowed_range を満たす場合に to_input_view がそれを満たすようにします。

注記

to_input_view は、より強力なイテレータ強度に必要な操作をサポートするために必要なオーバーヘッドを回避するのに有用です。

機能テスト マクロ 標準 機能
__cpp_lib_ranges_to_input 202502L (C++26) std::ranges::to_input_view

関連項目

イテレータ型が input_iterator を満たす範囲を指定する
(コンセプト)
view common_range に変換する
(クラステンプレート) (範囲アダプタオブジェクト)