Modernes C++ programmieren

Okt 23, 2024

lst-0825-godb.cpp

//#(compile) c++; compiler:g132; options:-O3 -std=c++23; libs:-
// https://godbolt.org/z/s1GjfWxv6 
void print(ranges::view auto range) { // Wertparameter, eingeschränkt auf Views
  for (auto const& e : range) { cout << e; } cout << '\n';
}
vector vec{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
list   lst{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
print(vec);                      //             (ERR)  Verboten für Container, sehr gut!
print(vs::all(vec));             // Container in View umwandeln
print(vs::all(lst));             // Container in View umwandeln
print(vec | vs::take(3));        // take mit vector klappt
print(lst | vs::take(3));        // take mit list klappt
print(vec | vs::drop(5));        // drop mit vector klappt
print(lst | vs::drop(5));        // als Wertparameter klappt drop mit list