std::ranges::adjacent_view<V,N>::adjacent_view - cppreference.com

From cppreference.com

adjacent_view()requiresstd::default_initializable<V>=default; (1) (since C++23)constexprexplicitadjacent_view(Vbase); (2) (since C++23)Constructs an

adjacent_view

.

2) Initializes the underlying view

base_

with std::move(base).

Parameters

base - the underlying view Example

Run this code

#include<iostream>#include<ranges>#include<string>#include<tuple>template<class...Ts>voidprint(std::tuple<Ts...>const&tuple){std::apply([&](auto&&arg,auto&&...args){std::cout<<arg;((std::cout<<args),...);},tuple);std::cout<<'\n';}intmain(){conststd::stringv{"ABCDEF"};constexprintwindow_size{4};std::cout<<"v: "<<v<<'\n';autoview=std::views::adjacent<window_size>(v);// overload (2)for(autoconst&tuple:view)print(tuple);}Output:

v: ABCDEF ABCD BCDE CDEF