24 Ranges library [ranges]

24.7 Range adaptors [range.adaptors]

24.7.12 Counted view [range.counted]

A counted view presents a view of the elements of the counted range ([iterator.requirements.general]) for an iterator i and non-negative integer n.
The name views​::​counted denotes a customization point object ([customization.point.object]).
Let E and F be expressions, let T be decay_Β­t<decltype((E))>, and let D be iter_Β­difference_Β­t<T>.
If decltype((F)) does not model convertible_Β­to<D>, views​::​counted(E, F) is ill-formed.
Note
:
This case can result in substitution failure when views​::​counted(E, F) appears in the immediate context of a template instantiation.
β€” end note
 ]
Otherwise, views​::​counted(E, F) is expression-equivalent to: