36 auto operator()(AN&&... an)
const {
37 return T{std::forward<AN>(an)...};
41 template<
template <
class...>
class T>
68 template <
template <
class...>
class T,
class... AN>
74 (
requires And<ConvertibleTo<VN&&, detail::any>...>)
75 void operator()(VN&&...) {}
119 set_value(std::declval<Data&>(), std::declval<VN>()...)
121 void operator()(
Data& out, VN&&... vn)
const {
137 void operator()(
Data& out)
const {
147 void operator()(
Data& out, Up&& up)
const {
161 template <
class Data,
class Out>
165 template <
class Data,
class TP,
class Out>
188 #if __cpp_variadic_using >= 201611 && __cpp_concepts 197 using Fns::operator()...;
210 using Fn::operator();
212 #if !defined(__GNUC__) || __GNUC__ >= 8 213 template <
class Fn,
class... Fns>
218 using Fn::operator();
222 template <
class Fn,
class... Fns>
227 using _which_t = std::conditional_t<
B, Fn,
overload_fn<Fns...>>;
234 lazy::Invocable<overload_fn<Fns...>&,
Args...>)
236 std::declval<_which_t<Invocable<Fn&,
Args...>>&>()(
std::declval<
Args>()...)) {
237 return std::get<!Invocable<Fn&, Args...>>(fns_)((Args &&) args...);
240 (
requires lazy::Invocable<
const Fn&, Args...> ||
241 lazy::Invocable<
const overload_fn<Fns...>&, Args...>)
243 std::declval<
const _which_t<Invocable<
const Fn&, Args...>>&>()(
std::declval<Args>()...)) {
244 return std::get<!Invocable<
const Fn&, Args...>>(fns_)((Args &&) args...);
250 template <
class... Fns>
255 template <
class... Fns>
261 template <
class... Fns>
266 template <
class... Fns>
272 template <
class... Fns>
281 using Fn::operator();
289 template <
class... Fns>
295 template <
class... Fns>
311 template <
class... Fns>
317 template <
class... Fns>
void operator()(detail::any) noexcept
auto overload(Fns...fns) -> overload_fn< Fns... >
auto on_value(Fns...fns) -> on_value_fn< Fns... >
auto on_submit(Fns...fns) -> on_submit_fn< Fns... >
constexpr detail::Map< Move > move
std::chrono::steady_clock::time_point now()
auto on_executor(Fn fn) -> on_executor_fn< Fn >
PUSHMI_INLINE_VAR constexpr __adl::set_error_fn set_error
auto on_now(Fn fn) -> on_now_fn< Fn >
void operator()(Data &in, Out out)
auto on_error(Fns...fns) -> on_error_fn< Fns... >
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
void operator()(detail::any)
auto on_starting(Fns...fns) -> on_starting_fn< Fns... >
—— Concurrent Priority Queue Implementation ——
requires E e noexcept(noexcept(s.error(std::move(e))))
#define PUSHMI_NOEXCEPT_AUTO(...)
constexpr overload_fn(Fn fn)
PUSHMI_INLINE_VAR constexpr __adl::get_executor_fn executor
void operator()(detail::any)
requires Constructible< T, AN... > auto operator()(AN &&...an) const
void operator()(Data &in, TP at, Out out)
void operator()(detail::any)
void operator()(detail::any, detail::any)
PUSHMI_INLINE_VAR constexpr __adl::set_starting_fn set_starting
::folly::pushmi::invoke_result_t< construct_deduced< T >, AN... > deduced_type_t
requires requires(detail::apply_impl(std::declval< F >(), std::declval< Tuple >(), detail::tupidxs< Tuple >{}))) const expr decltype(auto) apply(F &&f
PUSHMI_TEMPLATE(class E=std::exception_ptr, class Wrapped)(requires Sender< detail
constexpr on_done_fn(Fn fn)
PUSHMI_INLINE_VAR constexpr __adl::get_top_fn top
auto on_done(Fn fn) -> on_done_fn< Fn >
PUSHMI_INLINE_VAR constexpr __adl::set_value_fn set_value
#define PUSHMI_TYPE_CONSTRAINT(...)
PUSHMI_INLINE_VAR constexpr __adl::do_submit_fn submit
decltype(folly::pushmi::invoke(std::declval< F >(), std::declval< As >()...)) invoke_result_t
PUSHMI_INLINE_VAR constexpr detail::get_fn< T > get
constexpr overload_fn(Fn fn, Fns...fns)
PUSHMI_INLINE_VAR constexpr __adl::set_done_fn set_done