in include/range/v3/view/slice.hpp [262:319]
static auto bind(slice_fn slice, Int from, Int to)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(std::bind(slice, std::placeholders::_1, from, to))
)
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>::value)>
#else
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>())>
#endif
static auto bind(slice_fn slice, Int from, detail::from_end_<Int> to)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(std::bind(slice, std::placeholders::_1, from, to))
)
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>::value)>
#else
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>())>
#endif
static auto bind(slice_fn slice, detail::from_end_<Int> from, detail::from_end_<Int> to)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(std::bind(slice, std::placeholders::_1, from, to))
)
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>::value)>
#else
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>())>
#endif
static auto bind(slice_fn slice, Int from, end_detail::fn)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(std::bind(ranges::view::drop, std::placeholders::_1, from))
)
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>::value)>
#else
template<typename Int, CONCEPT_REQUIRES_(Integral<Int>())>
#endif
static auto bind(slice_fn slice, detail::from_end_<Int> from, end_detail::fn to)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(std::bind(slice, std::placeholders::_1, from, to))
)
public:
// slice(rng, 2, 4)
template<typename Rng,
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
CONCEPT_REQUIRES_(InputRange<Rng>::value)>
#else
CONCEPT_REQUIRES_(InputRange<Rng>())>
#endif
auto operator()(Rng && rng, range_difference_t<Rng> from,
range_difference_t<Rng> to) const ->
decltype(slice_fn::invoke_(std::forward<Rng>(rng), from, to - from,
range_concept<Rng>{}))