D++ (DPP)  10.0.30
C++ Discord API Bot Library
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Class Hierarchy

Go to the graphical class hierarchy

This inheritance list is sorted roughly, but not completely, alphabetically:
[detail level 1234]
 Cdpp::active_thread_infoA thread alongside the bot's optional thread_member object tied to it
 Cdpp::activityAn activity is a representation of what a user is doing
 Cdpp::activity_assetsAn activity asset are the images and the hover text displayed in the rich presence
 Cdpp::activity_buttonAn activity button is a custom button shown in the rich presence
 Cdpp::activity_partyInformation for the current party of the player
 Cdpp::activity_secretsSecrets for Rich Presence joining and spectating
 Cdpp::message::allowed_refAllowed mentions details
 Cdpp::poll_results::answer_countRepresents a reference to an answer and its count of votes
 Cdpp::app_teamRepresents a team of users who maintain a bot/application
 Cdpp::application_install_paramsRepresents the settings for the bot/application's in-app authorization link
 Cdpp::detail::when_any::arg_helper_s< T >Type trait helper to obtain the actual type that will be used by a when_any when a type is passed as a parameter
 Cdpp::detail::when_any::arg_helper_s< dpp::event_router_t< T > >
 Cdpp::detail::async::async_base< R >Base class of dpp::async
 Cdpp::detail::async::async_callback_data< R >State of the async and its callback
 Cdpp::async_dummy
 Cdpp::attachmentRepresents an attachment in a dpp::message
 Cdpp::audio_mixerA class for audio mixing operations using x64 instructions
 Cdpp::audit_changeDefines audit log changes
 Cdpp::audit_extraExtra information for an audit log entry
 Cdpp::detail::event_router::awaitable< T >Awaitable object representing an event
 Cdpp::detail::event_router::awaitable< dpp::autocomplete_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_create_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_execute_t >
 Cdpp::detail::event_router::awaitable< dpp::automod_rule_update_t >
 Cdpp::detail::event_router::awaitable< dpp::button_click_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_create_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_pins_update_t >
 Cdpp::detail::event_router::awaitable< dpp::channel_update_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_create_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::entitlement_update_t >
 Cdpp::detail::event_router::awaitable< dpp::form_submit_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_audit_log_entry_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_ban_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_ban_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_emojis_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_integrations_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_join_request_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_member_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_members_chunk_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_role_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_create_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_user_add_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_scheduled_event_user_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_stickers_update_t >
 Cdpp::detail::event_router::awaitable< dpp::guild_update_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_create_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::integration_update_t >
 Cdpp::detail::event_router::awaitable< dpp::interaction_create_t >
 Cdpp::detail::event_router::awaitable< dpp::invite_create_t >
 Cdpp::detail::event_router::awaitable< dpp::invite_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::log_t >
 Cdpp::detail::event_router::awaitable< dpp::message_context_menu_t >
 Cdpp::detail::event_router::awaitable< dpp::message_create_t >
 Cdpp::detail::event_router::awaitable< dpp::message_delete_bulk_t >
 Cdpp::detail::event_router::awaitable< dpp::message_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::message_poll_vote_add_t >
 Cdpp::detail::event_router::awaitable< dpp::message_poll_vote_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_add_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_all_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_emoji_t >
 Cdpp::detail::event_router::awaitable< dpp::message_reaction_remove_t >
 Cdpp::detail::event_router::awaitable< dpp::message_update_t >
 Cdpp::detail::event_router::awaitable< dpp::presence_update_t >
 Cdpp::detail::event_router::awaitable< dpp::ready_t >
 Cdpp::detail::event_router::awaitable< dpp::resumed_t >
 Cdpp::detail::event_router::awaitable< dpp::select_click_t >
 Cdpp::detail::event_router::awaitable< dpp::slashcommand_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_create_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::stage_instance_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_create_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_delete_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_list_sync_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_member_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_members_update_t >
 Cdpp::detail::event_router::awaitable< dpp::thread_update_t >
 Cdpp::detail::event_router::awaitable< dpp::typing_start_t >
 Cdpp::detail::event_router::awaitable< dpp::user_context_menu_t >
 Cdpp::detail::event_router::awaitable< dpp::user_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_buffer_send_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_client_disconnect_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_client_speaking_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_ready_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_receive_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_server_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_state_update_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_track_marker_t >
 Cdpp::detail::event_router::awaitable< dpp::voice_user_talking_t >
 Cdpp::detail::event_router::awaitable< dpp::webhooks_update_t >
 Cdpp::when_any< Args >::awaiterObject returned by operator co_await()
 Cdpp::bucket_tA rate limit bucket
 Cdpp::cache< T >A cache object maintains a cache of dpp::managed objects
 Cdpp::cache_policy_tRepresents the caching policy of the cluster
 Cdpp::clusterGroup of shards and a command queue for sending and receiving commands from discord via HTTP
 Cdpp::collector< T, C >Collects objects from events during a specified time period
 Cdpp::command_data_optionValues in the command interaction
 Cdpp::command_info_tRepresents the details of a command added to the command handler class
 Cdpp::command_interactionDetails of a command within an interaction
 Cdpp::command_resolvedResolved snowflake ids to users, guild members, roles and channels
 Cdpp::command_sourceRepresents the sending source of a command
 Cdpp::commandhandlerGroup of commands, prefixed or slash commands with handling functions
 Cdpp::anonymous_namespace{queues.cpp}::compare_requestComparator for sorting a request container
 Cdpp::request_queue::completed_requestA completed request
 Cdpp::component_default_valueA Default value structure for components
 Cdpp::component_interactionA button click for a button component
 Cdpp::confirmationConfirmation object represents any true or false simple REST request
 Cdpp::confirmation_callback_tThe results of a REST call wrapped in a convenient struct
 Cdpp::coroutineBase type for a coroutine, starts on co_await
 Cdpp::detail::coroutine::coroutine_base< R >Base class of dpp::coroutine<R>
 Cdpp::coroutine_dummy
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::coroutine< R >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::job, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise type from a coroutine function
 Cdpp::detail::std_coroutine::coroutine_traits< dpp::task< T >, Args... >Specialization of std::coroutine_traits, helps the standard library figure out a promise_t type from a coroutine function
 Cdpp::dns_cache_entryRepresents a cached DNS result
 Cdpp::utility::dummy< T >Utility struct that has the same size and alignment as another but does nothing
 Cdpp::embedA rich embed for display within a dpp::message
 Cdpp::embed_authorAuthor within a dpp::embed object
 Cdpp::embed_fieldA dpp::embed may contain zero or more fields
 Cdpp::embed_footerA footer in a dpp::embed
 Cdpp::embed_imageAn video, image or thumbnail in a dpp::embed
 Cdpp::embed_providerEmbed provider in a dpp::embed
 Cdpp::detail::when_any::emptyEmpty result from void-returning awaitable
 Cdpp::detail::empty_tag_tEmpty struct used for overload resolution
 Cdpp::error_detailThe details of a field in an error response
 Cdpp::error_infoThe full details of an error from a REST response
 Cdpp::etf_bufferRepresents a buffer of bytes being encoded into ETF
 Cdpp::etf_parserCan serialise and deserialise ETF (Erlang Term Format) into and out of an nlohmann::json object, so that layers above the websocket don't have to be any different for handling ETF
 Cdpp::events::eventAn event object represents an event handled internally, passed from the websocket e.g
 Cdpp::event_dispatch_tBase event parameter struct
 Cdpp::event_entitiesEntities for the event
 Cdpp::event_memberRepresents a guild member/user who has registered interest in an event
 Cdpp::event_router_t< T >Handles routing of an event to multiple listeners
 Cdpp::event_router_t< dpp::autocomplete_t >
 Cdpp::event_router_t< dpp::automod_rule_create_t >
 Cdpp::event_router_t< dpp::automod_rule_delete_t >
 Cdpp::event_router_t< dpp::automod_rule_execute_t >
 Cdpp::event_router_t< dpp::automod_rule_update_t >
 Cdpp::event_router_t< dpp::button_click_t >
 Cdpp::event_router_t< dpp::channel_create_t >
 Cdpp::event_router_t< dpp::channel_delete_t >
 Cdpp::event_router_t< dpp::channel_pins_update_t >
 Cdpp::event_router_t< dpp::channel_update_t >
 Cdpp::event_router_t< dpp::entitlement_create_t >
 Cdpp::event_router_t< dpp::entitlement_delete_t >
 Cdpp::event_router_t< dpp::entitlement_update_t >
 Cdpp::event_router_t< dpp::form_submit_t >
 Cdpp::event_router_t< dpp::guild_audit_log_entry_create_t >
 Cdpp::event_router_t< dpp::guild_ban_add_t >
 Cdpp::event_router_t< dpp::guild_ban_remove_t >
 Cdpp::event_router_t< dpp::guild_create_t >
 Cdpp::event_router_t< dpp::guild_delete_t >
 Cdpp::event_router_t< dpp::guild_emojis_update_t >
 Cdpp::event_router_t< dpp::guild_integrations_update_t >
 Cdpp::event_router_t< dpp::guild_join_request_delete_t >
 Cdpp::event_router_t< dpp::guild_member_add_t >
 Cdpp::event_router_t< dpp::guild_member_remove_t >
 Cdpp::event_router_t< dpp::guild_member_update_t >
 Cdpp::event_router_t< dpp::guild_members_chunk_t >
 Cdpp::event_router_t< dpp::guild_role_create_t >
 Cdpp::event_router_t< dpp::guild_role_delete_t >
 Cdpp::event_router_t< dpp::guild_role_update_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_create_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_delete_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_update_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_user_add_t >
 Cdpp::event_router_t< dpp::guild_scheduled_event_user_remove_t >
 Cdpp::event_router_t< dpp::guild_stickers_update_t >
 Cdpp::event_router_t< dpp::guild_update_t >
 Cdpp::event_router_t< dpp::integration_create_t >
 Cdpp::event_router_t< dpp::integration_delete_t >
 Cdpp::event_router_t< dpp::integration_update_t >
 Cdpp::event_router_t< dpp::interaction_create_t >
 Cdpp::event_router_t< dpp::invite_create_t >
 Cdpp::event_router_t< dpp::invite_delete_t >
 Cdpp::event_router_t< dpp::log_t >
 Cdpp::event_router_t< dpp::message_context_menu_t >
 Cdpp::event_router_t< dpp::message_create_t >
 Cdpp::event_router_t< dpp::message_delete_bulk_t >
 Cdpp::event_router_t< dpp::message_delete_t >
 Cdpp::event_router_t< dpp::message_poll_vote_add_t >
 Cdpp::event_router_t< dpp::message_poll_vote_remove_t >
 Cdpp::event_router_t< dpp::message_reaction_add_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_all_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_emoji_t >
 Cdpp::event_router_t< dpp::message_reaction_remove_t >
 Cdpp::event_router_t< dpp::message_update_t >
 Cdpp::event_router_t< dpp::presence_update_t >
 Cdpp::event_router_t< dpp::ready_t >
 Cdpp::event_router_t< dpp::resumed_t >
 Cdpp::event_router_t< dpp::select_click_t >
 Cdpp::event_router_t< dpp::slashcommand_t >
 Cdpp::event_router_t< dpp::stage_instance_create_t >
 Cdpp::event_router_t< dpp::stage_instance_delete_t >
 Cdpp::event_router_t< dpp::stage_instance_update_t >
 Cdpp::event_router_t< dpp::thread_create_t >
 Cdpp::event_router_t< dpp::thread_delete_t >
 Cdpp::event_router_t< dpp::thread_list_sync_t >
 Cdpp::event_router_t< dpp::thread_member_update_t >
 Cdpp::event_router_t< dpp::thread_members_update_t >
 Cdpp::event_router_t< dpp::thread_update_t >
 Cdpp::event_router_t< dpp::typing_start_t >
 Cdpp::event_router_t< dpp::user_context_menu_t >
 Cdpp::event_router_t< dpp::user_update_t >
 Cdpp::event_router_t< dpp::voice_buffer_send_t >
 Cdpp::event_router_t< dpp::voice_client_disconnect_t >
 Cdpp::event_router_t< dpp::voice_client_speaking_t >
 Cdpp::event_router_t< dpp::voice_ready_t >
 Cdpp::event_router_t< dpp::voice_receive_t >
 Cdpp::event_router_t< dpp::voice_server_update_t >
 Cdpp::event_router_t< dpp::voice_state_update_t >
 Cdpp::event_router_t< dpp::voice_track_marker_t >
 Cdpp::event_router_t< dpp::voice_user_talking_t >
 Cdpp::event_router_t< dpp::webhooks_update_t >
 Cstd::exceptionSTL class
 Cfalse_type
 Cdpp::detail::coroutine::final_awaiter< R >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::final_awaiter< R >The object automatically co_await-ed at the end of a task
 Cstd::hash< dpp::snowflake >
 Cdpp::http_connect_infoRepresents a HTTP scheme, hostname and port split into parts for easy use in https_client
 Cdpp::http_requestA HTTP request
 Cdpp::http_request_completion_tThe result of any HTTP request
 Cdpp::utility::iconWrapper class around a variant for either iconhash or image, for API objects that have one or the other (generally iconhash when receiving, image when uploading an image)
 Cdpp::utility::iconhashStore a 128 bit icon hash (profile picture, server icon etc) as a 128 bit binary value made of two uint64_t
 Cdpp::utility::image_dataImage to be received or sent to API calls
 Cdpp::in_threadRepresents a thread in the thread pool handling requests to HTTP(S) servers
 Cdpp::integration_accountThe account information for an integration
 Cdpp::integration_appAn application that has been integrated
 Cdpp::jobExtremely light coroutine object designed to send off a coroutine to execute on its own. Can be used in conjunction with coroutine events via event routers, or on its own
 Canonymous_namespace{coro.cpp}::job_awaitable
 Cdpp::job_dummy
 Cdpp::json_interface< T >Represents an interface for an object that can optionally implement functions for converting to and from nlohmann::json
 Cdpp::json_interface< application >
 Cdpp::json_interface< application_role_connection >
 Cdpp::json_interface< application_role_connection_metadata >
 Cdpp::json_interface< audit_entry >
 Cdpp::json_interface< auditlog >
 Cdpp::json_interface< automod_action >
 Cdpp::json_interface< automod_metadata >
 Cdpp::json_interface< automod_rule >
 Cdpp::json_interface< ban >
 Cdpp::json_interface< channel >
 Cdpp::json_interface< command_option >
 Cdpp::json_interface< command_option_choice >
 Cdpp::json_interface< command_permission >
 Cdpp::json_interface< component >
 Cdpp::json_interface< connection >
 Cdpp::json_interface< dtemplate >
 Cdpp::json_interface< emoji >
 Cdpp::json_interface< entitlement >
 Cdpp::json_interface< forum_tag >
 Cdpp::json_interface< gateway >
 Cdpp::json_interface< guild >
 Cdpp::json_interface< guild_command_permissions >
 Cdpp::json_interface< guild_member >
 Cdpp::json_interface< guild_widget >
 Cdpp::json_interface< integration >
 Cdpp::json_interface< interaction >
 Cdpp::json_interface< interaction_modal_response >
 Cdpp::json_interface< interaction_response >
 Cdpp::json_interface< invite >
 Cdpp::json_interface< message >
 Cdpp::json_interface< onboarding >
 Cdpp::json_interface< onboarding_prompt >
 Cdpp::json_interface< onboarding_prompt_option >
 Cdpp::json_interface< presence >
 Cdpp::json_interface< prune >
 Cdpp::json_interface< role >
 Cdpp::json_interface< scheduled_event >
 Cdpp::json_interface< select_option >
 Cdpp::json_interface< sku >
 Cdpp::json_interface< slashcommand >
 Cdpp::json_interface< stage_instance >
 Cdpp::json_interface< sticker >
 Cdpp::json_interface< sticker_pack >
 Cdpp::json_interface< thread >
 Cdpp::json_interface< thread_member >
 Cdpp::json_interface< user >
 Cdpp::json_interface< user_identified >
 Cdpp::json_interface< voiceregion >
 Cdpp::json_interface< voicestate >
 Cdpp::json_interface< webhook >
 Cdpp::json_interface< welcome_channel >
 Cdpp::json_interface< welcome_screen >
 Cdpp::keepalive_cache_tKeepalive cache record
 Cdpp::managedBase class for various types that can be stored in a cache that are identified by a dpp::snowflake id
 Cdpp::message_file_dataThe data for a file attached to a message
 Cdpp::message::message_interaction_structReference to an interaction
 Cdpp::message::message_refReference to another message, e.g
 Cdpp::moving_averager
 Cdpp::multipart_contentRepresents a multipart mime body and the correct top-level mime type If a non-multipart request is passed in, this is represented as a plain body and the application/json mime type
 Cdpp::oneshot_timerTrigger a timed event once
 Cdpp::openssl_connectionThis is an opaque class containing openssl library specific structures
 Cdpp::openssl_context_deleterCustom deleter for SSL_CTX
 COpusDecoder
 COpusEncoder
 COpusRepacketizer
 Cdpp::param_infoDetails of a command parameter used in registration
 Cdpp::partial_emojiAn emoji reference for a component (select menus included) or a poll
 Cdpp::permissionRepresents a permission bitmask (refer to enum dpp::permissions) which are held in an uint64_t
 Cdpp::permission_overwriteChannel permission overwrites
 Cdpp::pollRepresents a poll
 Cdpp::poll_answerRepresents an answer in a poll
 Cdpp::poll_mediaStructure representing a poll media, for example the poll question or a possible poll answer
 Cdpp::poll_resultsRepresents the results of a poll
 Cdpp::detail::job::promise< Args >Coroutine promise type for a job
 Cdpp::detail::task::promise_baseBase implementation of task::promise_t, without the logic that would depend on the return type
 Cdpp::detail::coroutine::promise_t< R >Promise type for coroutine
 Cdpp::detail::task::promise_t< R >A task's promise_t type, with special logic for handling nested tasks
 Cdpp::detail::coroutine::promise_t< void >Struct returned by a coroutine's final_suspend, resumes the continuation
 Cdpp::detail::task::promise_base::proxy_awaiter< A >Proxy awaitable that wraps any co_await inside the task and checks for cancellation on resumption
 Cdpp::request_queue::queued_deleting_requestA request queued for deletion in the queue
 Cdpp::reactionRepresents a reaction to a dpp::message
 Cdpp::request_queueManages rate limits and marshalls HTTP requests that have been built as http_request objects
 Cdpp::resolved_userDpp::resolved_user contains both a dpp::guild_member and a dpp::user
 Cdpp::when_any< Args >::resultObject returned by operator co_await() on resumption
 Cdpp::rtp_headerRepresents an RTP packet
 Cdpp::discord_voice_client::voice_payload_parking_lot::seq_range_tThe range of RTP packet sequence number and timestamp in the lot
 Canonymous_namespace{coro.cpp}::simple_awaitable
 Cdpp::snowflakeA container for a 64 bit unsigned value representing many things on discord
 Cdpp::ssl_clientImplements a simple non-blocking SSL stream client
 Cdpp::taskA coroutine task. It starts immediately on construction and can be co_await-ed, making it perfect for parallel coroutines returning a value
 Cdpp::detail::task::task_base< R >Base class of dpp::task
 Cdpp::task_dummy
 Cdpp::team_memberRepresents a team member on a team who maintain a bot/application
 Ctest_t
 Cdpp::thread_metadataMetadata for threads
 Cdpp::timed_listener< attached_event, listening_function >A timed_listener is a way to temporarily attach to an event for a specific timeframe, then detach when complete
 Cdpp::timed_listener< dpp::event_router_t< T >, std::function< void(const T &)> >
 Cdpp::timer_tUsed internally to store state of active timers
 Ctrue_type
 Cdpp::utility::uptimeA class used to represent an uptime in hours, minutes, seconds and days, with helper functions to convert from time_t and display as a string
 Cuser_project_id_tConvenience functor to get the snowflake of a certain type
 Cdpp::voice_out_packetAn opus-encoded RTP packet to be sent out to a voice channel
 Cdpp::voiceconnRepresents a connection to a voice channel
 Cdpp::when_any< Args >Experimental class to co_await on a bunch of awaitable objects, resuming when the first one completes. On completion, returns a result object that contains the index of the awaitable that finished first. A user can call result::index() and result::get<N>() on the result object to get the result, similar to std::variant
 Cdpp::zlibcontextThis is an opaque class containing zlib library specific structures