std::ranges:: views:: join_with, std::ranges:: join_with_view
|
Definiert im Header
<ranges>
|
||
|
template
<
ranges::
input_range
V,
ranges::
forward_range
Pattern
>
requires
ranges::
view
<
V
>
&&
|
(1) | (seit C++23) |
|
namespace
views
{
inline
constexpr
/* nicht spezifiziert */
join_with
=
/* nicht spezifiziert */
;
|
(2) | (seit C++23) |
|
Aufrufsignatur
|
||
|
template
<
ranges::
viewable_range
R,
class
Pattern
>
requires
/* siehe unten */
|
(seit C++23) | |
|
template
<
class
Pattern
>
constexpr /* Bereichsadapter-Abschluss */ join_with ( Pattern && pattern ) ; |
(seit C++23) | |
view
darstellt, die aus der Sequenz besteht, die durch das Glätten einer Ansicht von Bereichen erhalten wird, wobei jedes Element des Trennzeichens zwischen den Elementen der Ansicht eingefügt wird. Das Trennzeichen kann ein einzelnes Element oder eine Ansicht von Elementen sein.
join_with_view
modelliert
input_range
.
join_with_view
modelliert
forward_range
wenn:
- ranges:: range_reference_t < V > ist ein Referenztyp, und
-
Vund ranges:: range_reference_t < V > modellieren jeweilsforward_range.
join_with_view
modelliert
bidirectional_range
wenn:
- ranges:: range_reference_t < V > ist eine Referenz,
-
V, ranges:: range_reference_t < V > undPatternmodellieren jeweilsbidirectional_range, und -
ranges::
range_reference_t
<
V
>
und
Patternmodellieren jeweilscommon_range.
join_with_view
modelliert
common_range
wenn:
- ranges:: range_reference_t < V > ist ein Referenztyp, und
-
Vund ranges:: range_reference_t < V > modellieren jeweilsforward_rangeundcommon_range.
Inhaltsverzeichnis |
Verschachtelte Typen
| Typ | Definition |
InnerRng
|
ranges::
range_reference_t
<
V
>
( Nur zur Darstellung verwendeter Member-Typ* ) |
Datenmitglieder
| Member | Definition |
V
base_
|
die zugrunde liegende (adaptierte) Ansicht
( Nur zur Veranschaulichung verwendetes Mitgliedsobjekt* ) |
Pattern
pattern_
|
das Musterobjekt
( Nur zur Veranschaulichung verwendetes Mitgliedsobjekt* ) |
non-propagating-cache
<
ranges::
iterator_t
<
V
>>
outer_it_
(nur vorhanden, wenn
V
nicht
forward_range
modelliert)
|
der Cache des äußeren Iterators
( Nur zur Veranschaulichung verwendetes Mitgliedsobjekt* ) |
non-propagating-cache
<
std::
remove_cv_t
<
InnerRng
>>
inner_
(nur vorhanden, wenn std:: is_reference_v <
InnerRng
>
false
ist)
|
der Cache des inneren Bereichs
( Nur zur Veranschaulichung verwendetes Mitgliedsobjekt* ) |
Memberfunktionen
erstellt einen
join_with_view
(öffentliche Elementfunktion) |
|
|
gibt eine Kopie der zugrundeliegenden (adaptierten) Ansicht zurück
(öffentliche Elementfunktion) |
|
|
gibt einen Iterator zum Anfang zurück
(öffentliche Elementfunktion) |
|
|
gibt einen Iterator oder Sentinel zum Ende zurück
(öffentliche Elementfunktion) |
|
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
(ö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, bereitgestellt nur wenn
ranges::empty
darauf anwendbar ist
(ö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, bereitgestellt nur wenn sie
bidirectional_range
und
common_range
erfüllt
(öffentliche Elementfunktion von
std::ranges::view_interface<D>
)
|
|
Ableitungsleitfäden
Geschachtelte Klassen
|
der Iteratortyp
( Nur zur Darstellung dienende Member-Klassentemplate* ) |
|
|
der Sentineltyp
( Nur zur Darstellung dienende Member-Klassentemplate* ) |
Hinweise
| Feature-Test Makro | Wert | Std | Feature |
|---|---|---|---|
__cpp_lib_ranges_join_with
|
202202L
|
(C++23) |
std::ranges::join_with_view
|
Beispiel
#include <iostream> #include <ranges> #include <string_view> #include <vector> int main() { using namespace std::literals; std::vector v{"This"sv, "is"sv, "a"sv, "test."sv}; auto joined = v | std::views::join_with(' '); for (auto c : joined) std::cout << c; std::cout << '\n'; }
Ausgabe:
This is a test.
Fehlerberichte
Die folgenden verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | Angewendet auf | Verhalten wie veröffentlicht | Korrektes Verhalten |
|---|---|---|---|
| LWG 4074 | C++23 |
join_with_view
war unterbeschränkt
|
Einschränkungen aktualisiert |
Siehe auch
|
(C++20)
|
eine
view
bestehend aus der durch Aufflatten einer
view
von
range
s
erhaltenen Sequenz
(Klassentemplate) (Range-Adapter-Objekt) |
eine
view
bestehend aus der Verkettung der adaptierten Views
(Klassentemplate) (Customization-Point-Objekt) |