|
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...)) |
|