Given a subexpression E and a constant expression N,
the expression views::adjacent<N>(E) is expression-equivalent to

- ((void)E, auto(views::empty<tuple<>>)) if N is equal to 0 and decltype((E)) models forward_range,
- otherwise, adjacent_view<views::all_t<decltype((E))>, N>(E).

[*Example 1*: vector v = {1, 2, 3, 4};
for (auto i : v | views::adjacent<2>) {
cout << "(" << std::get<0>(i) << ", " << std::get<1>(i) << ") "; // prints (1, 2) (2, 3) (3, 4)
}
— *end example*]