34 template <
typename F,
typename Tuple>
38 template <
typename Self, std::size_t... I,
typename...
Args>
41 std::declval<Self>().f_,
42 std::get<I>(std::declval<Self>().stored_args_)...,
43 std::declval<Args>()...)) {
45 std::forward<Self>(
self).f_,
46 std::get<I>(std::forward<Self>(
self).stored_args_)...,
47 std::forward<Args>(args)...);
51 template <
typename Callable,
typename...
Args>
53 : f_(
std::forward<Callable>(callable)),
54 stored_args_(
std::forward<
Args>(args)...) {}
56 template <
typename... CArgs>
57 auto operator()(CArgs&&... cargs) & -> decltype(invokeForward(
58 std::declval<Partial&>(),
60 std::declval<CArgs>()...)) {
61 return invokeForward(*
this,
Indexes{}, std::forward<CArgs>(cargs)...);
63 template <
typename... CArgs>
67 std::declval<CArgs>()...)) {
68 return invokeForward(*
this,
Indexes{}, std::forward<CArgs>(cargs)...);
70 template <
typename... As>
72 std::declval<Partial&&>(),
74 std::declval<As>()...)) {
77 template <
typename... As>
81 std::declval<As>()...)) {
118 template <
typename F,
typename...
Args>
124 std::forward<Args>(args)...};
make_index_sequence< std::tuple_size< Tuple >{}> Indexes
auto operator()(CArgs &&...cargs)&-> decltype(invokeForward(std::declval< Partial & >(), Indexes
constexpr detail::Map< Move > move
internal::ArgsMatcher< InnerMatcher > Args(const InnerMatcher &matcher)
—— Concurrent Priority Queue Implementation ——
constexpr auto invoke(F &&f, Args &&...args) noexcept(noexcept(static_cast< F && >(f)(static_cast< Args && >(args)...))) -> decltype(static_cast< F && >(f)(static_cast< Args && >(args)...))
auto partial(F &&f, Args &&...args) -> detail::partial::Partial< typename std::decay< F >::type, std::tuple< typename std::decay< Args >::type... >>
make_integer_sequence< std::size_t, Size > make_index_sequence
auto operator()(CArgs &&...cargs) const &-> decltype(invokeForward(std::declval< const Partial & >(), Indexes
auto operator()(As &&...as) const &&-> decltype(invokeForward(std::declval< const Partial && >(), Indexes
Partial(PartialConstructFromCallable, Callable &&callable, Args &&...args)
auto operator()(As &&...a)&&-> decltype(invokeForward(std::declval< Partial && >(), Indexes
static auto invokeForward(Self &&self, index_sequence< I... >, Args &&...args) -> decltype(invoke(std::declval< Self >().f_, std::get< I >(std::declval< Self >().stored_args_)..., std::declval< Args >()...))