static auto bind()

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>{}))