std::ranges::views::to_input, std::ranges::to_input_view
| Definiert in der Header-Datei <ranges> |
||
| template< ranges::input_range V > requires ranges::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 */ |
(seit C++26) | |
view als nur input_range und nicht als common_range darstellt.- views::all(e), wenn es ein wohlgeformter Ausdruck ist und alle nachfolgenden Bedingungen true sind
-
Tmodelliertinput_range, -
Terfüllt nichtcommon_range, und -
Terfüllt nichtforward_range.
-
- to_input_view{e} andernfalls.
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>) | |
| (C++23) |
gibt einen konstanten Iterator zum Anfang des Bereichs zurück (public member function of std::ranges::view_interface<D>) |
| (C++23) |
gibt ein Sentinel für den konstanten Iterator des Bereichs zurück (public member function of std::ranges::view_interface<D>) |
| 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>) | |
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>) | |
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>) | |
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>) | |
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>) | |
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) |
base_ wertmäßig über seinen Standard-Member-Initialisierer (= V()).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) |
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) |
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) |
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) |
[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>> = |
(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
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| (C++20) |
spezifiziert einen Range, dessen Iteratortyp input_iterator erfüllt(Konzept) |
konvertiert einen view in einen common_range(Klassen-Template) (Range-Adaptor-Objekt) |