std::ranges::iterator_t, std::ranges::sentinel_t

From cppreference.com
< cpp‎ | ranges
Defined in header <ranges>
template <class T>
using iterator_t = decltype(ranges::begin(declval<T&>()));
(1) (since C++20)
template <class T>
using sentinel_t = decltype(ranges::end(declval<T&>()));
(2) (since C++20)
1) Used to obtain the iterator type of the type T.
2) Used to obtain the sentinel type of the type T.