//******************************************************** // The following code example is taken from the book // C++23 - The Complete Guide // by Nicolai M. Josuttis (www.josuttis.com) // http://www.cppstd23.com // // The code is licensed under a // Creative Commons Attribution 4.0 International License // http://creativecommons.org/licenses/by/4.0/ //******************************************************** #include #include #include #include int main() { std::list coll{1, 2, 3, 4}; // initialize views: auto v1 = coll | std::views::slide(3); auto v2 = coll | std::views::slide(4); // apply views: std::println("coll: {} =>", coll); std::println(" slide(3): {}", v1); std::println(" slide(4): {}\n", v2); // modify underlying range: coll.push_back(5); // apply views again: std::println("modified: {} =>", coll); std::println(" slide(3): {}", v1); std::println(" slide(4): {}\n", v2); // create new views and apply them: auto coll2 = coll; auto v3 = coll | std::views::slide(3); auto v4 = coll | std::views::slide(4); std::println("new views: {} =>", coll); std::println(" slide(3): {}", v3); std::println(" slide(4): {}\n", v4); }