in include/range/v3/utility/functional.hpp [587:622]
static auto pipe(Arg && arg, Pipe pipe)
RANGES_DECLTYPE_AUTO_RETURN
(
pipe(std::forward<Arg>(arg))
)
};
// Evaluate the pipe with an argument
template<typename Arg, typename Pipe,
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
CONCEPT_REQUIRES_(!is_pipeable<Arg>::value && is_pipeable<Pipe>::value)>
#else
CONCEPT_REQUIRES_(!is_pipeable<Arg>() && is_pipeable<Pipe>())>
#endif
auto operator|(Arg && arg, Pipe pipe)
RANGES_DECLTYPE_AUTO_RETURN
(
pipeable_access::impl<Pipe>::pipe(std::forward<Arg>(arg), pipe)
)
// Compose two pipes
template<typename Pipe0, typename Pipe1,
#ifdef RANGES_WORKAROUND_MSVC_SFINAE_CONSTEXPR
CONCEPT_REQUIRES_(is_pipeable<Pipe0>::value && is_pipeable<Pipe1>::value)>
#else
CONCEPT_REQUIRES_(is_pipeable<Pipe0>() && is_pipeable<Pipe1>())>
#endif
auto operator|(Pipe0 pipe0, Pipe1 pipe1)
RANGES_DECLTYPE_AUTO_RETURN
(
make_pipeable(detail::composed_pipe<Pipe0, Pipe1>{pipe0, pipe1})
)
template<typename T, bool RValue /* = false*/>
struct reference_wrapper
{