| 
| const std::error_category &  | stream_category () noexcept | 
|   | 
| std::error_code  | make_error_code (net::stream_errc e) noexcept | 
|   | 
| std::error_condition  | make_error_condition (net::stream_errc e) noexcept | 
|   | 
| const const_buffer *  | buffer_sequence_begin (const const_buffer &b) noexcept | 
|   | 
| const const_buffer *  | buffer_sequence_end (const const_buffer &b) noexcept | 
|   | 
| template<class C >  | 
| auto  | buffer_sequence_begin (C &c) noexcept -> decltype(c.begin()) | 
|   | 
| template<class C >  | 
| auto  | buffer_sequence_begin (const C &c) noexcept -> decltype(c.begin()) | 
|   | 
| template<class C >  | 
| auto  | buffer_sequence_end (C &c) noexcept -> decltype(c.end()) | 
|   | 
| template<class C >  | 
| auto  | buffer_sequence_end (const C &c) noexcept -> decltype(c.end()) | 
|   | 
| const mutable_buffer *  | buffer_sequence_begin (const mutable_buffer &b) noexcept | 
|   | 
| const mutable_buffer *  | buffer_sequence_end (const mutable_buffer &b) noexcept | 
|   | 
| template<class ConstBufferSequence >  | 
| size_t  | buffer_size (const ConstBufferSequence &buffers) noexcept | 
|   | 
| template<>  | 
| size_t  | buffer_size< const_buffer > (const const_buffer &b) noexcept | 
|   | 
| template<>  | 
| size_t  | buffer_size< mutable_buffer > (const mutable_buffer &b) noexcept | 
|   | 
| template<class MutableBufferSequence , class ConstBufferSequence >  | 
| size_t  | buffer_copy (const MutableBufferSequence &dest, const ConstBufferSequence &src, const size_t max_size) noexcept | 
|   | copy bytes from a ConstBufferSequence to a MutableBufferSequence.  More...
  | 
|   | 
| template<class MutableBufferSequence , class ConstBufferSequence >  | 
| size_t  | buffer_copy (const MutableBufferSequence &dest, const ConstBufferSequence &src) noexcept | 
|   | 
| mutable_buffer  | operator+ (const mutable_buffer &b, size_t n) noexcept | 
|   | 
| mutable_buffer  | operator+ (size_t n, const mutable_buffer &b) noexcept | 
|   | 
| const_buffer  | operator+ (const const_buffer &b, size_t n) noexcept | 
|   | 
| const_buffer  | operator+ (size_t n, const const_buffer &b) noexcept | 
|   | 
| mutable_buffer  | buffer (void *p, size_t n) noexcept | 
|   | 
| const_buffer  | buffer (const void *p, size_t n) noexcept | 
|   | 
| mutable_buffer  | buffer (const mutable_buffer &b) noexcept | 
|   | 
| mutable_buffer  | buffer (const mutable_buffer &b, size_t n) noexcept | 
|   | 
| const_buffer  | buffer (const const_buffer &b) noexcept | 
|   | 
| const_buffer  | buffer (const const_buffer &b, size_t n) noexcept | 
|   | 
| template<class T , size_t N>  | 
| mutable_buffer  | buffer (T(&data)[N]) noexcept | 
|   | 
| template<class T , size_t N>  | 
| const_buffer  | buffer (const T(&data)[N]) noexcept | 
|   | 
| template<class T , size_t N>  | 
| mutable_buffer  | buffer (std::array< T, N > &data) noexcept | 
|   | 
| template<class T , size_t N>  | 
| const_buffer  | buffer (std::array< const T, N > &data) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| mutable_buffer  | buffer (std::vector< T, Allocator > &data) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| const_buffer  | buffer (const std::vector< T, Allocator > &data) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| mutable_buffer  | buffer (std::basic_string< CharT, Traits, Allocator > &data) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| const_buffer  | buffer (const std::basic_string< CharT, Traits, Allocator > &data) noexcept | 
|   | 
| template<class CharT , class Traits >  | 
| const_buffer  | buffer (const std::basic_string_view< CharT, Traits > &data) noexcept | 
|   | 
| template<class T , std::size_t E>  | 
| const_buffer  | buffer (const std::span< T, E > &data) noexcept | 
|   | 
| template<class T , size_t N>  | 
| mutable_buffer  | buffer (T(&data)[N], size_t n) noexcept | 
|   | 
| template<class T , size_t N>  | 
| const_buffer  | buffer (const T(&data)[N], size_t n) noexcept | 
|   | 
| template<class T , size_t N>  | 
| mutable_buffer  | buffer (std::array< T, N > &data, size_t n) noexcept | 
|   | 
| template<class T , size_t N>  | 
| const_buffer  | buffer (std::array< const T, N > &data, size_t n) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| mutable_buffer  | buffer (std::vector< T, Allocator > &data, size_t n) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| const_buffer  | buffer (const std::vector< T, Allocator > &data, size_t n) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| mutable_buffer  | buffer (std::basic_string< CharT, Traits, Allocator > &data, size_t n) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| const_buffer  | buffer (const std::basic_string< CharT, Traits, Allocator > &data, size_t n) noexcept | 
|   | 
| template<class T , std::size_t E>  | 
| const_buffer  | buffer (const std::span< T, E > &data, size_t n) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| dynamic_vector_buffer< T, Allocator >  | dynamic_buffer (std::vector< T, Allocator > &vec) noexcept | 
|   | 
| template<class T , class Allocator >  | 
| dynamic_vector_buffer< T, Allocator >  | dynamic_buffer (std::vector< T, Allocator > &vec, size_t n) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| dynamic_string_buffer< CharT, Traits, Allocator >  | dynamic_buffer (std::basic_string< CharT, Traits, Allocator > &str) noexcept | 
|   | 
| template<class CharT , class Traits , class Allocator >  | 
| dynamic_string_buffer< CharT, Traits, Allocator >  | dynamic_buffer (std::basic_string< CharT, Traits, Allocator > &str, size_t n) noexcept | 
|   | 
template<class SyncReadStream , class MutableBufferSequence >  
requires (is_mutable_buffer_sequence_v<MutableBufferSequence>) | 
| stdx::expected< size_t, std::error_code >  | read (SyncReadStream &stream, const MutableBufferSequence &buffers) | 
|   | 
template<class SyncReadStream , class MutableBufferSequence , class CompletionCondition >  
requires (is_mutable_buffer_sequence_v<MutableBufferSequence>) | 
| stdx::expected< size_t, std::error_code >  | read (SyncReadStream &stream, const MutableBufferSequence &buffers, CompletionCondition cond) | 
|   | 
template<class SyncReadStream , class DynamicBuffer >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| stdx::expected< size_t, std::error_code >  | read (SyncReadStream &stream, DynamicBuffer &&b) | 
|   | 
template<class SyncReadStream , class DynamicBuffer , class CompletionCondition >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| stdx::expected< size_t, std::error_code >  | read (SyncReadStream &stream, DynamicBuffer &&b, CompletionCondition cond) | 
|   | 
template<class AsyncReadStream , class DynamicBuffer , class CompletionCondition , class CompletionToken >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| void  | async_read (AsyncReadStream &stream, DynamicBuffer &&b, CompletionCondition completion_condition, CompletionToken &&token) | 
|   | 
template<class AsyncReadStream , class DynamicBuffer , class CompletionToken >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| void  | async_read (AsyncReadStream &stream, DynamicBuffer &&b, CompletionToken &&token) | 
|   | 
template<class SyncWriteStream , class ConstBufferSequence >  
requires (is_const_buffer_sequence_v<ConstBufferSequence>) | 
| stdx::expected< size_t, std::error_code >  | write (SyncWriteStream &stream, const ConstBufferSequence &buffers) | 
|   | 
template<class SyncWriteStream , class ConstBufferSequence , class CompletionCondition >  
requires (is_const_buffer_sequence_v<ConstBufferSequence>) | 
| stdx::expected< size_t, std::error_code >  | write (SyncWriteStream &stream, const ConstBufferSequence &buffers, CompletionCondition cond) | 
|   | 
template<class SyncWriteStream , class DynamicBuffer >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| stdx::expected< size_t, std::error_code >  | write (SyncWriteStream &stream, DynamicBuffer &&b) | 
|   | 
template<class SyncWriteStream , class DynamicBuffer , class CompletionCondition >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| stdx::expected< size_t, std::error_code >  | write (SyncWriteStream &stream, DynamicBuffer &&b, CompletionCondition cond) | 
|   | 
template<class AsyncWriteStream , class ConstBufferSequence , class CompletionCondition , class CompletionToken >  
requires (is_const_buffer_sequence_v<ConstBufferSequence>) | 
| void  | async_write (AsyncWriteStream &stream, const ConstBufferSequence &buffers, CompletionCondition cond, CompletionToken &&token) | 
|   | 
template<class AsyncWriteStream , class ConstBufferSequence , class CompletionToken >  
requires (is_const_buffer_sequence_v<ConstBufferSequence>) | 
| void  | async_write (AsyncWriteStream &stream, const ConstBufferSequence &buffers, CompletionToken &&token) | 
|   | 
template<class AsyncWriteStream , class DynamicBuffer , class CompletionCondition , class CompletionToken >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| void  | async_write (AsyncWriteStream &stream, DynamicBuffer &&b, CompletionCondition cond, CompletionToken &&token) | 
|   | 
template<class AsyncWriteStream , class DynamicBuffer , class CompletionToken >  
requires (is_dynamic_buffer_v<DynamicBuffer>) | 
| void  | async_write (AsyncWriteStream &stream, DynamicBuffer &&b, CompletionToken &&token) | 
|   | 
| template<class T >  | 
| associated_allocator_t< T >  | get_associated_allocator (const T &t) noexcept | 
|   | 
| template<class T , class ProtoAllocator >  | 
| associated_allocator_t< T >  | get_associated_allocator (const T &t, const ProtoAllocator &a) noexcept | 
|   | 
| template<class Service >  | 
| Service::key_type &  | use_service (execution_context &ctx) | 
|   | 
| template<class Service , class... Args>  | 
| Service &  | make_service (execution_context &ctx, Args &&...args) | 
|   | 
| template<class Service >  | 
| bool  | has_service (const execution_context &ctx) noexcept | 
|   | 
| template<class T >  | 
| associated_executor_t< T >  | get_associated_executor (const T &t) noexcept | 
|   | 
| template<class T , class Executor >  | 
| associated_executor_t< T, Executor >  | get_associated_executor (const T &t, const Executor &ex) noexcept | 
|   | 
| template<class T , class ExecutorContext >  | 
| associated_executor_t< T, typename ExecutorContext::executor_type >  | get_associated_executor (const T &t, const ExecutorContext &ctx) noexcept | 
|   | 
template<class Executor >  
requires (is_executor_v<Executor>) | 
| executor_work_guard< Executor >  | make_work_guard (const Executor &ex) | 
|   | 
template<class ExecutionContext >  
requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | 
| executor_work_guard< typename ExecutionContext::executor_type >  | make_work_guard (ExecutionContext &ctx) | 
|   | 
template<class T >  
requires (!is_executor_v<T> && !std::is_convertible_v<T &, execution_context &>) | 
| executor_work_guard< associated_executor_t< T > >  | make_work_guard (const T &t) | 
|   | 
| template<class T , class U >  | 
| auto  | make_work_guard (const T &t, U &&u) -> decltype(make_work_guard(get_associated_executor(t, std::forward< U >(u)))) | 
|   | 
| bool  | operator== (const system_executor &, const system_executor &) | 
|   | 
| bool  | operator!= (const system_executor &, const system_executor &) | 
|   | 
| template<class CompletionToken >  | 
| auto  | dispatch (CompletionToken &&token) | 
|   | 
template<class Executor , class CompletionToken >  
requires (is_executor_v<Executor>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | dispatch (const Executor &ex, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
template<class ExecutionContext , class CompletionToken >  
requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | dispatch (ExecutionContext &ctx, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
| template<class CompletionToken >  | 
| auto  | post (CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
template<class Executor , class CompletionToken >  
requires (is_executor_v<Executor>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | post (const Executor &ex, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
template<class ExecutionContext , class CompletionToken >  
requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | post (ExecutionContext &ctx, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
| template<class CompletionToken >  | 
| auto  | defer (CompletionToken &&token) | 
|   | 
template<class Executor , class CompletionToken >  
requires (is_executor_v<Executor>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | defer (const Executor &ex, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
template<class ExecutionContext , class CompletionToken >  
requires (std::is_convertible_v<ExecutionContext &, execution_context &>) | 
| async_result< std::decay_t< CompletionToken >, void()>::return_type  | defer (ExecutionContext &ctx, CompletionToken &&token) | 
|   | queue a function call for later execution.  More...
  | 
|   | 
| template<class Executor >  | 
| bool  | operator== (const strand< Executor > &a, const strand< Executor > &b) | 
|   | 
| template<class Executor >  | 
| bool  | operator!= (const strand< Executor > &a, const strand< Executor > &b) | 
|   | 
| const std::error_category &  | io_service_category () noexcept | 
|   | 
| std::error_code  | make_error_code (net::io_service_errc e) noexcept | 
|   | 
| constexpr bool  | operator== (const fd_event &a, const fd_event &b) | 
|   | 
| constexpr bool  | operator!= (const fd_event &a, const fd_event &b) | 
|   | 
| const std::error_category &  | socket_category () noexcept | 
|   | 
| std::error_code  | make_error_code (net::socket_errc e) noexcept | 
|   | 
| bool  | operator== (const io_context::executor_type &a, const io_context::executor_type &b) noexcept | 
|   | 
| bool  | operator!= (const io_context::executor_type &a, const io_context::executor_type &b) noexcept | 
|   | 
| template<class Protocol , class EndpointSequence , class ConnectCondition >  | 
| stdx::expected< typename Protocol::endpoint, std::error_code >  | connect (basic_socket< Protocol > &s, const EndpointSequence &endpoints, ConnectCondition c) | 
|   | connect to the first endpoint that is connectable from a sequence of endpoints.  More...
  | 
|   | 
| template<class Protocol , class EndpointSequence >  | 
| stdx::expected< typename Protocol::endpoint, std::error_code >  | connect (basic_socket< Protocol > &s, const EndpointSequence &endpoints) | 
|   | connect to the first endpoint that is connectable.  More...
  | 
|   | 
| template<class Protocol , class InputIterator , class ConnectCondition >  | 
| stdx::expected< InputIterator, std::error_code >  | connect (basic_socket< Protocol > &s, InputIterator first, InputIterator last, ConnectCondition c) | 
|   | connect to the first endpoint that is connectable from a range [first, last).  More...
  | 
|   | 
| template<class Protocol , class InputIterator , class ConnectCondition >  | 
| stdx::expected< InputIterator, std::error_code >  | connect (basic_socket< Protocol > &s, InputIterator first, InputIterator last) | 
|   |