Range-v3
Range algorithms, views, and actions for the Standard Library
functional.hpp File Reference

Classes

struct  ranges::v3::as_function_fn
 
struct  ranges::v3::bind_element< T >
 
struct  ranges::v3::bind_element< reference_wrapper< T, RValue > >
 
struct  ranges::v3::bind_element< std::reference_wrapper< T > >
 
struct  ranges::v3::bitwise_or
 
struct  ranges::v3::coerce< T >
 
struct  ranges::v3::coerce< T & >
 
struct  ranges::v3::coerce< T && >
 
struct  ranges::v3::coerce< T const >
 
struct  ranges::v3::compose_fn
 
struct  ranges::v3::composed< Second, First >
 
struct  ranges::v3::concepts::Callable
 
struct  ranges::v3::concepts::CallablePredicate
 
struct  ranges::v3::concepts::CallableRelation
 
struct  ranges::v3::concepts::RegularCallable
 
struct  ranges::v3::convert_to< T >
 
struct  ranges::v3::equal_to
 
struct  ranges::v3::ident
 
struct  ranges::v3::indirect_fn
 
struct  ranges::v3::indirected< Fn >
 
struct  ranges::v3::is_pipeable< T >
 
struct  ranges::v3::is_pipeable< T & >
 
struct  ranges::v3::is_reference_wrapper< T >
 
struct  ranges::v3::is_reference_wrapper< reference_wrapper< T, RValue > >
 
struct  ranges::v3::is_reference_wrapper< std::reference_wrapper< T > >
 
struct  ranges::v3::less
 
struct  ranges::v3::logical_negate_< FD >
 
struct  ranges::v3::make_pipeable_fn
 
struct  ranges::v3::minus
 
struct  ranges::v3::multiplies
 
struct  ranges::v3::not_equal_to
 
struct  ranges::v3::not_fn_fn
 
struct  ranges::v3::on_fn
 
struct  ranges::v3::ordered_less
 
struct  ranges::v3::overload_fn
 
struct  ranges::v3::overloaded< First, Rest... >
 
struct  ranges::v3::overloaded<>
 
struct  ranges::v3::pipeable< Derived >
 
struct  ranges::v3::pipeable_access
 
struct  ranges::v3::pipeable_access::impl< Pipeable >
 
struct  ranges::v3::pipeable_access::impl< Pipeable & >
 
struct  ranges::v3::pipeable_base
 
struct  ranges::v3::plus
 
struct  ranges::v3::protect_fn
 
struct  ranges::v3::ref_fn
 
struct  ranges::v3::reference_of< T >
 
struct  ranges::v3::reference_of< reference_wrapper< T, RValue > >
 
struct  ranges::v3::reference_of< std::reference_wrapper< T > >
 
struct  ranges::v3::reference_of< T & >
 
struct  ranges::v3::reference_of< T && >
 
struct  ranges::v3::reference_of< T const >
 
struct  ranges::v3::reference_wrapper< T, RValue >
 
struct  ranges::v3::rref_fn
 
struct  ranges::v3::transformed< Fn1, Fn2 >
 
struct  ranges::v3::unwrap_reference_fn
 
struct  ranges::v3::with_braced_init_args< ImplFn >
 

Typedefs

template<typename Fun , typename... Args>
using ranges::v3::Callable = concepts::models< concepts::Callable, Fun, Args... >
 
template<typename Fun , typename... Args>
using ranges::v3::CallablePredicate = concepts::models< concepts::CallablePredicate, Fun, Args... >
 
template<typename Fun , typename T , typename U = T>
using ranges::v3::CallableRelation = concepts::models< concepts::CallableRelation, Fun, T, U >
 
template<typename T >
using ranges::v3::function_type = decltype(as_function(std::declval< T >()))
 
template<typename T >
using ranges::v3::is_reference_wrapper_t = meta::_t< is_reference_wrapper< T >>
 
template<typename Pred >
using ranges::v3::logical_negate = logical_negate_< detail::decay_t< function_type< Pred >>>
 
template<typename T >
using ranges::v3::ref_t = decltype(ref(std::declval< T >()))
 
template<typename T >
using ranges::v3::reference_of_t = meta::_t< reference_of< T >>
 
template<typename Fun , typename... Args>
using ranges::v3::RegularCallable = concepts::models< concepts::RegularCallable, Fun, Args... >
 
template<typename T >
using ranges::v3::rref_t = decltype(rref(std::declval< T >()))
 
template<typename T >
using ranges::v3::unwrap_reference_t = decltype(unwrap_reference(std::declval< T >()))
 

Functions

template<typename T , typename U = meta::if_< std::is_lvalue_reference<T>, std::reference_wrapper<meta::_t<std::remove_reference<T>>>, T &&>>
ranges::v3::bind_forward (meta::_t< std::remove_reference< T >> &t) noexcept
 
template<typename T >
T && ranges::v3::bind_forward (meta::_t< std::remove_reference< T >> &&t) noexcept
 
template<typename Arg , typename Pipe , requires = (!is_pipeable<Arg>() && is_pipeable<Pipe>())>
auto ranges::v3::operator| (Arg &&arg, Pipe pipe) -> decltype(pipeable_access::impl< Pipe >::pipe(std::forward< Arg >(arg), pipe))
 
template<typename Pipe0 , typename Pipe1 , requires = (is_pipeable<Pipe0>() && is_pipeable<Pipe1>())>
auto ranges::v3::operator| (Pipe0 pipe0, Pipe1 pipe1) -> decltype(make_pipeable(detail::composed_pipe< Pipe0, Pipe1 >
 

Variables

constexpr as_function_fn ranges::v3::as_function {}
 
constexpr compose_fn ranges::v3::compose {}
 
constexpr indirect_fn ranges::v3::indirect {}
 
constexpr make_pipeable_fn ranges::v3::make_pipeable {}
 
constexpr not_fn_fn ranges::v3::not_fn {}
 
constexpr on_fn ranges::v3::on {}
 
constexpr overload_fn ranges::v3::overload {}
 
constexpr protect_fn ranges::v3::protect {}
 Protect a callable so that it can be safely used in a bind expression without accidentally becoming a "nested" bind. More...
 
constexpr ref_fn ranges::v3::ref {}
 
constexpr rref_fn ranges::v3::rref {}
 
constexpr unwrap_reference_fn ranges::v3::unwrap_reference {}