Range-v3 Range algorithms, views, and actions for the Standard Library |

Public Member Functions | Public Attributes | List of all members
ranges::v3::invoke_fn Struct Reference
Utility

## Public Member Functions
template<typename F , typename Obj , typename First , typename... Rest, meta::if_c< detail::is_function< F >::value, int > = 0>
constexpr auto | operator() (F Obj::*ptr, First &&first, Rest &&... rest) const noexcept(noexcept(decltype(invoke_member_fn(std::is_base_of< Obj, detail::decay_t< First >>{}, is_reference_wrapper_t< detail::decay_t< First >>{}, ptr, static_cast< First && >(first), static_cast< Rest && >(rest)...))(invoke_member_fn(std::is_base_of< Obj, detail::decay_t< First >>{}, is_reference_wrapper_t< detail::decay_t< First >>{}, ptr, static_cast< First && >(first), static_cast< Rest && >(rest)...)))) -> decltype(invoke_member_fn(std::is_base_of< Obj, detail::decay_t< First >>
template<typename Data , typename Obj , typename First , meta::if_c<!detail::is_function< Data >::value, int > = 0>
constexpr auto | operator() (Data Obj::*ptr, First &&first) const noexcept(noexcept(decltype(invoke_member_data(std::is_base_of< Obj, detail::decay_t< First >>{}, is_reference_wrapper_t< detail::decay_t< First >>{}, ptr, static_cast< First && >(first)))(invoke_member_data(std::is_base_of< Obj, detail::decay_t< First >>{}, is_reference_wrapper_t< detail::decay_t< First >>{}, ptr, static_cast< First && >(first))))) -> decltype(invoke_member_data(std::is_base_of< Obj, detail::decay_t< First >>
template<typename F , typename... Args, meta::if_c<!std::is_member_pointer< uncvref_t< F >>::value, int > = 0>
constexpr auto | operator() (F &&fn, Args &&... args) const noexcept(noexcept(decltype(static_cast< F && >(fn)(static_cast< Args && >(args)...))(static_cast< F && >(fn)(static_cast< Args && >(args)...)))) -> decltype(static_cast< F && >(fn)(static_cast< Args && >(args)...))
| static_cast (first)
| static_cast (rest)...))
| static_cast (first)))

## Public Attributes
| ptr