名前空間
変種
操作

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

From cppreference.com
< cpp‎ | ranges
 
 
Rangesライブラリ
Rangeアダプタ
 
 
ヘッダ <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 /* unspecified */ to_input = /* unspecified */;

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

    requires /* 以下を参照 */

constexpr ranges::view auto to_input( R&& r );
(C++26以降)
1) 下層のviewを、common_rangeではないinput_rangeとして表すrange adaptor。
2) RangeAdaptorObjecte を部分式とし、Tdecltype(e) とする。このとき、式 views::to_input(e) は、次の条件がすべて true であり、かつ整形された式である場合、

したがって、to_input_viewinput_range よりも強力なレンジコンセプトをモデル化することはない。特に、これらのすべてをモデル化することはない。

さらに、to_input_viewcommon_range をモデル化しない。しかし、下層のビュー V がそれぞれのコンセプトをモデル化する場合、borrowed_rangeconstant_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 メンバ関数) [編集]
(C++23)
範囲の先頭への定数イテレータを返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
(C++23)
範囲の定数イテレータの番兵を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが空でないかどうかを返す。ranges::empty が適用可能な場合にのみ提供される
(std::ranges::view_interface<D> の public メンバ関数) [編集]
イテレータ型が contiguous_iterator を満たす場合にのみ、派生ビューのデータのアドレスを取得する
(std::ranges::view_interface<D> の公開メンバ関数) [編集]
派生ビューが forward_range を満たす場合に、派生ビューの最初の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが bidirectional_rangecommon_range の両方を満たす場合にのみ、派生ビューの最後の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]
派生ビューが random_access_range を満たす場合にのみ、派生ビューの n番目の要素を返す
(std::ranges::view_interface<D> の public メンバ関数) [編集]

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 - ビュー

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_); と等価である。

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 のこの特殊化は、下層のビューがそれを満たす場合、to_input_viewborrowed_range を満たすようにする。

[編集] ノート

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

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

[編集]

[編集] 関連項目

イテレータ型が input_iterator を満たすrangeを規定する
(コンセプト) [編集]
viewcommon_range に変換する
(クラステンプレート) (rangeアダプタオブジェクト)[編集]
English 日本語 中文(简体) 中文(繁體)