D++ (DPP)
C++ Discord API Bot Library
|
Internal cogwheels for dpp::when_any. More...
Classes | |
struct | arg_helper_s |
Type trait helper to obtain the actual type that will be used by a when_any when a type is passed as a parameter. May specialize for certain types for specific behavior, e.g. for an event_router, store the awaitable directly. More... | |
struct | arg_helper_s< dpp::event_router_t< T > > |
struct | empty |
Empty result from void-returning awaitable. More... | |
Typedefs | |
template<typename T > | |
using | awaitable_type = typename arg_helper_s< T >::type |
Alias for the actual type that an awaitable will be stored as in a when_any. For example if given an event_router, store the awaitable, not the event_router. More... | |
template<typename T > | |
using | arg_helper = arg_helper_s< std::remove_cvref_t< T > > |
Helper struct with a method to convert an awaitable parameter to the actual value it will be stored as. For example if given an event_router, store the awaitable, not the event_router. More... | |
template<typename T > | |
using | storage_type = std::conditional_t< std::is_void_v< T >, empty, T > |
Actual type a result will be stores as in when_any. More... | |
Enumerations | |
enum | await_state { await_state::started, await_state::waiting, await_state::done, await_state::dangling } |
Current state of a when_any object. More... | |
Variables | |
template<typename T > | |
concept | void_result = std::same_as<T, empty> |
Concept satisfied if a stored result is void. More... | |
Internal cogwheels for dpp::when_any.
using dpp::detail::when_any::arg_helper = typedef arg_helper_s<std::remove_cvref_t<T> > |
Helper struct with a method to convert an awaitable parameter to the actual value it will be stored as. For example if given an event_router, store the awaitable, not the event_router.
using dpp::detail::when_any::awaitable_type = typedef typename arg_helper_s<T>::type |
Alias for the actual type that an awaitable will be stored as in a when_any. For example if given an event_router, store the awaitable, not the event_router.
using dpp::detail::when_any::storage_type = typedef std::conditional_t<std::is_void_v<T>, empty, T> |
Actual type a result will be stores as in when_any.
|
strong |
Current state of a when_any object.
Enumerator | |
---|---|
started | Object was started but not awaited. |
waiting | Object is being awaited. |
done | Object was resumed. |
dangling | Object was destroyed. |
concept dpp::detail::when_any::void_result = std::same_as<T, empty> |
Concept satisfied if a stored result is void.