Namensräume
Varianten
Aktionen

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

Von cppreference.com
< cpp‎ | ranges
 
 
Bereichsbibliothek
Range-Adaptoren
 
 
Definiert in der Header-Datei <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)
Aufruf-Signatur
template< ranges::viewable_range R >

    requires /* siehe unten */

constexpr ranges::view auto to_input( R&& r );
(seit C++26)
1) Ein Range-Adaptor, der eine View eines zugrundeliegenden view als nur input_range und nicht als common_range darstellt.
2) RangeAdaptorObject. Sei e ein Subausdruck und sei T decltype(e). Dann ist der Ausdruck views::to_input(e) ausdrucks-äquivalent zu

Folglich modelliert to_input_view niemals Range-Konzepte, die stärker als input_range sind. Insbesondere modelliert es nicht alle davon.

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

Inhalt

[bearbeiten] Datenmember

Mitglied Beschreibung
V base_ (private) die zugrunde liegende Ansicht
((exposition-only member object*)

[bearbeiten] Memberfunktionen

konstruiert eine to_input_view
(öffentliche Memberfunktion)
gibt eine Kopie der zugrunde liegenden (angepassten) View zurück
(öffentliche Memberfunktion)
gibt einen Iterator zum Anfang zurück
(öffentliche Memberfunktion)
gibt einen Iterator oder Sentinel zum Ende zurück
(öffentliche Memberfunktion)
gibt die Anzahl der Elemente zurück. Nur bereitgestellt, wenn der zugrundeliegende (adaptierte) Bereich sized_range erfüllt.
(öffentliche Memberfunktion)
Geerbt von std::ranges::view_interface
gibt zurück, ob die abgeleitete Ansicht leer ist, bereitgestellt nur, wenn sie sized_range oder forward_range erfüllt
(public member function of std::ranges::view_interface<D>) [edit]
(C++23)
gibt einen konstanten Iterator zum Anfang des Bereichs zurück
(public member function of std::ranges::view_interface<D>) [edit]
(C++23)
gibt ein Sentinel für den konstanten Iterator des Bereichs zurück
(public member function of std::ranges::view_interface<D>) [edit]
gibt zurück, ob die abgeleitete Ansicht nicht leer ist, bereitgestellt nur, wenn ranges::empty darauf anwendbar ist
(public member function of std::ranges::view_interface<D>) [edit]
gibt die Adresse der Daten der abgeleiteten Ansicht zurück, nur bereitgestellt, wenn ihr Iteratortyp contiguous_iterator erfüllt
(öffentliche Memberfunktion von std::ranges::view_interface<D>) [edit]
gibt das erste Element in der abgeleiteten View zurück, bereitgestellt, wenn sie forward_range erfüllt
(öffentliche Member-Funktion von std::ranges::view_interface<D>) [edit]
gibt das letzte Element in der abgeleiteten View zurück, nur bereitgestellt, wenn sie bidirectional_range und common_range erfüllt
(öffentliche Member-Funktion von std::ranges::view_interface<D>) [edit]
gibt das n-te Element in der abgeleiteten View zurück, nur bereitgestellt, wenn sie random_access_range erfüllt
(öffentliche Member-Funktion von std::ranges::view_interface<D>) [edit]

std::ranges::to_input_view::to_input_view

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

Parameter

base - eine Ansicht

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) Äquivalent zu return /*iterator*/<false>(ranges::begin(base_));
2) Äquivalent zu 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) Äquivalent zu 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) Äquivalent zu return ranges::size(base_);

[bearbeiten] Deduktionsleitfäden

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

[bearbeiten] Verschachtelte Klassen

der Iterator-Typ
((nur zur Veranschaulichung Exposition-only Member-Klassenschablone)*)

[bearbeiten] Hilfsschablonen

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 dies tut.

[bearbeiten] Hinweise

to_input_view kann nützlich sein, um den Aufwand für die Bereitstellung von Unterstützung für Operationen zu vermeiden, die für stärkere Iterator-Stärken erforderlich sind.

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

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

spezifiziert einen Range, dessen Iteratortyp input_iterator erfüllt
(Konzept) [edit]
konvertiert einen view in einen common_range
(Klassen-Template) (Range-Adaptor-Objekt)[edit]