#### basic_socket::basic_socket

Construct a `basic_socket` without opening it.

    explicit basic_socket(
        const executor_type & ex);
      » more...

    template<
        typename ExecutionContext>
    explicit basic_socket(
        ExecutionContext & context,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value >  = 0);
      » more...

Construct and open a `basic_socket`.

    basic_socket(
        const executor_type & ex,
        const protocol_type & protocol);
      » more...

    template<
        typename ExecutionContext>
    basic_socket(
        ExecutionContext & context,
        const protocol_type & protocol,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value, defaulted_constraint >  = defaulted_constraint());
      » more...

Construct a `basic_socket`, opening it and binding it to the given local endpoint.

    basic_socket(
        const executor_type & ex,
        const endpoint_type & endpoint);
      » more...

    template<
        typename ExecutionContext>
    basic_socket(
        ExecutionContext & context,
        const endpoint_type & endpoint,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value >  = 0);
      » more...

Construct a `basic_socket` on an existing native socket.

    basic_socket(
        const executor_type & ex,
        const protocol_type & protocol,
        const native_handle_type & native_socket);
      » more...

    template<
        typename ExecutionContext>
    basic_socket(
        ExecutionContext & context,
        const protocol_type & protocol,
        const native_handle_type & native_socket,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value >  = 0);
      » more...

Move-construct a `basic_socket` from another.

    basic_socket(
        basic_socket && other);
      » more...

Move-construct a `basic_socket` from a socket of another protocol type.

    template<
        typename Protocol1,
        typename Executor1>
    basic_socket(
        basic_socket< Protocol1, Executor1 > && other,
        constraint_t< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value >  = 0);
      » more...