in include/range/v3/action/action.hpp [120:148]
auto operator()(Rng & rng, Rest &&... rest) const
RANGES_DECLTYPE_AUTO_RETURN
(
action_(rng, std::forward<Rest>(rest)...)
)
// Currying overload.
template<typename T, typename...Rest, typename A = Action>
auto operator()(T && t, Rest &&... rest) const
RANGES_DECLTYPE_AUTO_RETURN
(
make_action(action_access::impl<A>::bind(action_, std::forward<T>(t),
std::forward<Rest>(rest)...))
)
};
template<typename Rng, typename Action,
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
CONCEPT_REQUIRES_(is_pipeable<Action>::value && Range<Rng &>::value &&
Function<bitwise_or, ref_t<Rng &> &&, Action>::value &&
Same<ref_t<Rng &>,
concepts::Function::result_t<bitwise_or, ref_t<Rng &> &&, Action>>::value)>
#else
CONCEPT_REQUIRES_(is_pipeable<Action>() && Range<Rng &>() &&
Function<bitwise_or, ref_t<Rng &> &&, Action>() &&
Same<ref_t<Rng &>,
concepts::Function::result_t<bitwise_or, ref_t<Rng &> &&, Action>>())>
#endif
Rng & operator|=(Rng & rng, Action && action)
{