std::ranges::adjacent_transform_view::begin(3)

NAME
std::ranges::adjacent_transform_view::begin - std::ranges::adjacent_transform_view::begin

Synopsis
   constexpr auto begin(); (1) (since C++23)
   constexpr auto begin() const
       requires ranges::range<const InnerView> && (2) (since C++23)
           std::regular_invocable<const F&,
               __REPEAT(ranges::range_reference_t<const V>, N)...>;
   Returns an iterator to the first element of the adjacent_transform_view.
   Let inner_ be the underlying ranges::adjacent_view.
   1) Equivalent to return /*iterator*/<false>(*this, inner_.begin());.
   2) Equivalent to return /*iterator*/<true>(*this, inner_.begin());.

Parameters
   (none)

Return value
   Iterator to the first element.

Example
// Run this code
 #include <ranges>
 int main()
 {
     auto sum = [](auto... args) { return (... + args); };
     constexpr auto view = std::views::iota(13, 1337)
                        | std::views::adjacent_transform<3>(sum);
     static_assert(*view.begin() == 42 and 42 == 13 + 14 + 15);
 }

See also
   end returns an iterator or a sentinel to the end
   (C++23) (public member function)
   ranges::begin returns an iterator to the beginning of a range
   (C++20) (customization point object)