28 using mem_fn_t = decltype(std::mem_fn(std::declval<F>()));
31 template <
class F,
class... As>
34 -> decltype(((F &&)
f)((As &&)
as...)) {
35 return ((F &&)
f)((As &&) as...);
37 template <
class F,
class... As>
40 -> decltype(
std::mem_fn(
f)((As &&)
as...)) {
41 return std::mem_fn(
f)((As &&) as...);
45 template <
class F,
class... As>
50 template (
class F,
class...
Args)
58 template (
class F,
class...
Args)
decltype(std::mem_fn(std::declval< F >())) mem_fn_t
PUSHMI_INLINE_VAR constexpr struct folly::pushmi::invoke_fn invoke
constexpr std::enable_if_t< B, int > requires_
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
PUSHMI_CONCEPT_DEF(template(class PS) concept Cardinality, has_cardinality_v< PS >)
auto operator()(F &&f, As &&...as) const noexcept(noexcept(std::declval< mem_fn_t< F >>()((As &&) as...))) -> decltype(std::mem_fn(f)((As &&) as...))
#define PUSHMI_INLINE_VAR
auto operator()(F &&f, As &&...as) const noexcept(noexcept(((F &&) f)((As &&) as...))) -> decltype(((F &&) f)((As &&) as...))
requires requires(detail::apply_impl(std::declval< F >(), std::declval< Tuple >(), detail::tupidxs< Tuple >{}))) const expr decltype(auto) apply(F &&f
decltype(folly::pushmi::invoke(std::declval< F >(), std::declval< As >()...)) invoke_result_t