Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::invoke_fn Struct Reference

Public Member Functions

template<typename D , typename T , typename T1 >
constexpr auto operator() (D T::*f, T1 &&t1) const noexcept(noexcept(invoke_fn::coerce< T >((T1 &&) t1, 0).*f)) -> decltype(invoke_fn::coerce< T >((T1 &&) t1, 0).*f)
 
template<typename F , typename... Args>
constexpr auto operator() (F &&f, Args &&... args) const noexcept(noexcept(((F &&) f)((Args &&) args...))) -> decltype(((F &&) f)((Args &&) args...))
 
template<typename F , typename T , typename T1 , typename... Args>
constexpr auto operator() (F T::*f, T1 &&t1, Args &&... args) const noexcept(noexcept((invoke_fn::coerce< T >((T1 &&) t1, 0).*f)((Args &&) args...))) -> decltype((invoke_fn::coerce< T >((T1 &&) t1, 0).*f)((Args &&) args...))