std::experimental::ranges::iterator_t, std::experimental::ranges::sentinel_t
Min standard notice:
Header: <experimental/ranges/range>
Obtain the iterator and sentinel types of a range T.
# Declarations
template< class T >
using iterator_t = decltype(ranges::begin(std::declval<T&>()));
(ranges TS)
template< class T >
using sentinel_t = decltype(ranges::end(std::declval<T&>()));
(ranges TS)