Namespaces
Variants

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

From cppreference.net
Ranges library
Range adaptors
Definiert im Header <ranges>
template < ranges:: input_range V >

requires ranges:: view < V >
class to_input_view

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

inline constexpr /* nicht spezifiziert */ to_input = /* nicht spezifiziert */ ;

}
(2) (seit C++26)
Aufrufsignatur
template < ranges:: viewable_range R >

requires /* siehe unten */

constexpr ranges:: view auto to_input ( R && r ) ;
(seit C++26)
1) Ein Bereichsadapter, der eine Ansicht eines zugrundeliegenden view als einen ausschließlichen input_range und keinen common_range darstellt.
2) RangeAdaptorObject . Sei e ein Subausdruck und sei T gleich decltype ( e ) . Dann ist der Ausdruck views :: to_input ( e ) ausdrucksäquivalent zu:

Folglich modelliert to_input_view niemals Bereichskonzepte, die stärker sind als input_range . Insbesondere modelliert es keine der folgenden:

Zusätzlich to_input_view modelliert nicht common_range . Es modelliert jedoch borrowed_range , constant_range und sized_range , wenn die zugrundeliegende View V die jeweiligen Konzepte modelliert.

Inhaltsverzeichnis

Datenmitglieder

Mitglied Beschreibung
V base_ (privat) die zugrundeliegende Ansicht
( Nur-Darstellungs-Mitgliedsobjekt* )

Memberfunktionen

konstruiert einen to_input_view
(öffentliche Elementfunktion)
gibt eine Kopie der zugrundeliegenden (angepassten) Ansicht zurück
(öffentliche Elementfunktion)
gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion)
gibt einen Iterator oder einen Sentinel zum Ende zurück
(öffentliche Elementfunktion)
gibt die Anzahl der Elemente zurück. Nur bereitgestellt, wenn der zugrundeliegende (angepasste) Bereich sized_range erfüllt.
(öffentliche Elementfunktion)
Geerbt von std::ranges::view_interface
gibt zurück, ob die abgeleitete Ansicht leer ist, nur bereitgestellt wenn sie sized_range oder forward_range erfüllt
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
(C++23)
gibt einen konstanten Iterator zum Anfang des Bereichs zurück
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
(C++23)
gibt einen Sentinel für den konstanten Iterator des Bereichs zurück
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
gibt zurück, ob die abgeleitete Ansicht nicht leer ist, nur bereitgestellt wenn ranges::empty darauf anwendbar ist
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
ruft die Adresse der Daten der abgeleiteten Ansicht ab, nur bereitgestellt wenn ihr Iteratortyp contiguous_iterator erfüllt
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
gibt das erste Element in der abgeleiteten Ansicht zurück, bereitgestellt wenn sie forward_range erfüllt
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
gibt das letzte Element in der abgeleiteten Ansicht zurück, nur bereitgestellt wenn sie bidirectional_range und common_range erfüllt
(öffentliche Elementfunktion von std::ranges::view_interface<D> )
gibt das n te Element in der abgeleiteten Ansicht zurück, nur bereitgestellt wenn sie random_access_range erfüllt
(öffentliche Elementfunktion von std::ranges::view_interface<D> )

std::ranges::to_input_view:: to_input_view

to_input_view ( ) requires std:: default_initializable < V > = default ;
(1) (seit C++26)
constexpr explicit to_input_view ( V base ) ;
(2) (seit C++26)
1) Wertinitialisiert base_ über seinen Standard-Member-Initialisierer ( = V ( ) ).
2) Initialisiert base_ mit std :: move ( base ) .

Parameter

base - eine View

std::ranges::to_input_view:: base

constexpr V base ( ) const & requires std:: copy_constructible < V > ;
(1) (seit C++26)
constexpr V base ( ) && ;
(2) (seit C++26)
1) Kopiert das Ergebnis aus der zugrunde liegenden Ansicht. Entspricht return base_ ; .
2) Verschiebt das Ergebnis aus der zugrunde liegenden Ansicht. Entspricht return std :: move ( base_ ) ; .

std::ranges::to_input_view:: begin

constexpr auto begin ( ) requires ( ! __simple_view < V > ) ;
(1) (seit C++26)
constexpr auto begin ( ) const requires ranges:: range < const V > ;
(2) (seit C++26)
1) Entspricht return /*iterator*/ < false > ( ranges:: begin ( base_ ) ) ;
2) Entspricht return /*iterator*/ < true > ( ranges:: begin ( base_ ) ) ;

std::ranges::to_input_view:: end

constexpr auto end ( ) requires ( ! __simple_view < V > ) ;
(1) (seit C++26)
constexpr auto end ( ) const requires ranges:: range < const V > ;
(2) (seit C++26)
1,2) Entspricht return ranges:: end ( base_ ) ;

std::ranges::to_input_view:: size

constexpr auto size ( ) requires ranges:: sized_range < V > ;
(1) (seit C++26)
constexpr auto size ( ) const requires ranges:: sized_range < const V > ;
(2) (seit C++26)
1,2) Entspricht return ranges:: size ( base_ ) ;

Deduktionsanleitungen

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

Geschachtelte Klassen

der Iteratortyp
( Nur zur Veranschaulichung dienende Member-Klassenvorlage* )

Hilfsvorlagen

template < class T >

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

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

Diese Spezialisierung von std :: ranges:: enable_borrowed_range bewirkt, dass to_input_view borrowed_range erfüllt, wenn die zugrundeliegende View diese Bedingung erfüllt.

Hinweise

to_input_view kann nützlich sein, um den Aufwand zu vermeiden, der notwendig ist, um Unterstützung für die Operationen bereitzustellen, die für eine größere Iterator-Stärke benötigt werden.

Feature-Test Makro Wert Std Feature
__cpp_lib_ranges_to_input 202502L (C++26) std::ranges::to_input_view

Beispiel

Siehe auch

spezifiziert einen Bereich, dessen Iteratortyp input_iterator erfüllt
(Konzept)
konvertiert eine view in einen common_range
(Klassentemplate) (Range-Adapter-Objekt)