Go to the documentation of this file.
15 #ifndef GRPC_CORE_LIB_PROMISE_DETAIL_PROMISE_FACTORY_H
16 #define GRPC_CORE_LIB_PROMISE_DETAIL_PROMISE_FACTORY_H
20 #include <type_traits>
23 #include "absl/meta/type_traits.h"
55 namespace promise_detail {
58 template <
typename T,
typename Ignored =
void>
60 static constexpr
bool value =
false;
64 static constexpr
bool value =
true;
68 template <
typename T,
typename Ignored =
void>
71 template <
typename F,
typename...
Args>
73 absl::
void_t<decltype(std::declval<RemoveCVRef<F>>()(
74 std::declval<Args>()...))>> {
83 template <
typename F,
typename Arg>
89 using Result = decltype(std::declval<F>()(std::declval<Arg>()));
99 template <
typename A,
typename F>
108 template <
typename A,
typename F>
110 PromiseLike<RemoveCVRef<F>>>
116 template <
typename F>
118 PromiseLike<RemoveCVRef<F>>>
124 template <
typename A,
typename F>
126 PromiseLike<decltype(std::declval<F>()(std::declval<A>()))>>
128 return f(std::forward<A>(
arg));
133 template <
typename A,
typename F>
135 PromiseLike<decltype(std::declval<F>()())>>
141 template <
typename F>
143 PromiseLike<decltype(std::declval<F>()())>>
148 template <
typename A,
typename F>
169 template <
typename F>
188 #endif // GRPC_CORE_LIB_PROMISE_DETAIL_PROMISE_FACTORY_H
GPR_NO_UNIQUE_ADDRESS Arg arg_
static constexpr bool value
Curried(const F &f, Arg &&arg)
decltype(std::declval< F >()(std::declval< Arg >())) Result
typename std::enable_if< B, T >::type enable_if_t
Arg(64) -> Arg(128) ->Arg(256) ->Arg(512) ->Arg(1024) ->Arg(1536) ->Arg(2048) ->Arg(3072) ->Arg(4096) ->Arg(5120) ->Arg(6144) ->Arg(7168)
constexpr absl::remove_reference_t< T > && move(T &&t) noexcept
absl::enable_if_t<!IsVoidCallable< ResultOf< F(A)> >::value, PromiseLike< Curried< RemoveCVRef< F >, A > > > PromiseFactoryImpl(F &&f, A &&arg)
decltype(PromiseFactoryImpl(std::move(f_))) Promise
typename type_traits_internal::VoidTImpl< Ts... >::type void_t
typename ResultOfT< T >::T ResultOf
Promise Repeated(Arg &&a) const
GPR_NO_UNIQUE_ADDRESS F f_
GPR_NO_UNIQUE_ADDRESS F f_
absl::remove_cv_t< absl::remove_reference_t< T > > RemoveCVRef
decltype(PromiseFactoryImpl(std::move(f_), std::declval< void >())) Promise
constexpr T && forward(absl::remove_reference_t< T > &t) noexcept
decltype(std::declval< RemoveCVRef< F > >()(std::declval< Args >()...)) T
Curried(F &&f, Arg &&arg)
GPR_NO_UNIQUE_ADDRESS F f_
grpc
Author(s):
autogenerated on Thu Mar 13 2025 03:00:55