D++ (DPP)  10.0.30
C++ Discord API Bot Library
dpp::when_any< Args >::result Class Reference

Object returned by operator co_await() on resumption. More...

#include "when_any.h"

Public Member Functions

 result (const result &)=delete
 This object is not copyable. More...
 
 result (result &&)=default
 Move constructor. More...
 
template<size_t N>
result_t< N > & get () &
 Retrieve the non-void result of an awaitable. More...
 
template<size_t N>
result_t< N > && get () &&
 Retrieve the non-void result of an awaitable. More...
 
template<size_t N>
const result_t< N > & get () const &
 Retrieve the non-void result of an awaitable. More...
 
size_t index () const noexcept
 Retrieve the index of the awaitable that finished first. More...
 
bool is_exception () const noexcept
 Checks whether the return of the first awaitable triggered an exception, that is, a call to get() will rethrow. More...
 
resultoperator= (const result &)=delete
 This object is not copyable. More...
 
resultoperator= (result &&)=default
 Move assignment operator. More...
 
template<size_t N>
 requires (detail::when_any::void_result< result_t< N >>) void get()=delete
 Cannot retrieve a void result. More...
 

Friends

class when_any< Args... >
 

Detailed Description

template<typename... Args>
class dpp::when_any< Args >::result

Object returned by operator co_await() on resumption.

Can be moved but not copied.

Constructor & Destructor Documentation

◆ result() [1/2]

template<typename... Args>
dpp::when_any< Args >::result::result ( result &&  )
default

Move constructor.

◆ result() [2/2]

template<typename... Args>
dpp::when_any< Args >::result::result ( const result )
delete

This object is not copyable.

Member Function Documentation

◆ get() [1/3]

template<typename... Args>
template<size_t N>
result_t<N>& dpp::when_any< Args >::result::get ( ) &
inline

Retrieve the non-void result of an awaitable.

Template Parameters
NIndex of the result to retrieve. Must correspond to index().
Exceptions
???Throws any exception triggered at construction, or std::bad_variant_access if N does not correspond to index()
Returns
Result of the awaitable as a reference.

◆ get() [2/3]

template<typename... Args>
template<size_t N>
result_t<N>&& dpp::when_any< Args >::result::get ( ) &&
inline

Retrieve the non-void result of an awaitable.

Template Parameters
NIndex of the result to retrieve. Must correspond to index().
Exceptions
???Throws any exception triggered at construction, or std::bad_variant_access if N does not correspond to index()
Returns
Result of the awaitable as an rvalue reference.

◆ get() [3/3]

template<typename... Args>
template<size_t N>
const result_t<N>& dpp::when_any< Args >::result::get ( ) const &
inline

Retrieve the non-void result of an awaitable.

Template Parameters
NIndex of the result to retrieve. Must correspond to index().
Exceptions
???Throws any exception triggered at construction, or std::bad_variant_access if N does not correspond to index()
Returns
Result of the awaitable as a cpnst reference.

◆ index()

template<typename... Args>
size_t dpp::when_any< Args >::result::index ( ) const
inlinenoexcept

Retrieve the index of the awaitable that finished first.

Returns
size_t Index of the awaitable that finished first, relative to the template arguments of when_any

◆ is_exception()

template<typename... Args>
bool dpp::when_any< Args >::result::is_exception ( ) const
inlinenoexcept

Checks whether the return of the first awaitable triggered an exception, that is, a call to get() will rethrow.

Returns
Whether or not the result is an exception

◆ operator=() [1/2]

template<typename... Args>
result& dpp::when_any< Args >::result::operator= ( const result )
delete

This object is not copyable.

◆ operator=() [2/2]

template<typename... Args>
result& dpp::when_any< Args >::result::operator= ( result &&  )
default

Move assignment operator.

◆ requires()

template<typename... Args>
template<size_t N>
dpp::when_any< Args >::result::requires ( detail::when_any::void_result< result_t< N >>  )
delete

Cannot retrieve a void result.

Friends And Related Function Documentation

◆ when_any< Args... >

template<typename... Args>
friend class when_any< Args... >
friend

The documentation for this class was generated from the following file: