// https://godbolt.org/z/64zdMEe4r
void print(const auto& range) { // (ERR) kritisch: konstante Referenz
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); // funktioniert auf direkten Containern
print(lst); // funktioniert auf direkten Containern
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)); // (ERR) drop mit list klappt nicht!