Checked indexed range access.
|
template<typename Rng , requires = (RandomAccessRange<Rng>() && SizedRange<Rng>())> |
auto | operator() (Rng &&rng, range_difference_type_t< Rng > n) const -> decltype(ranges::begin(rng)[n]) |
|
template<typename Rng , requires = (RandomAccessRange<Rng>() && !SizedRange<Rng>())> |
auto | operator() (Rng &&rng, range_difference_type_t< Rng > n) const noexcept(noexcept(decltype(index(std::forward< Rng >(rng), n))(index(std::forward< Rng >(rng), n)))) -> decltype(index(std::forward< Rng >(rng), n)) |
|
template<typename Rng , typename T , typename Self = at_fn, typename D = range_difference_type_t<Rng>, requires = (RandomAccessRange<Rng>() && !Same<uncvref_t<T>, D>() && ConvertibleTo<T, D>())> |
auto | operator() (Rng &&rng, T &&t) const noexcept(noexcept(decltype(Self{}((Rng &&) rng, static_cast< D >((T &&) t)))(Self{}((Rng &&) rng, static_cast< D >((T &&) t))))) -> decltype(Self |
|
Rng | static_cast ((T &&) t))) |
|