##### basic_socket::basic_socket (10 of 10 overloads)

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);

This constructor moves a socket from one object to another.

###### Parameters

other

  The other `basic_socket` object from which the move will occur.

###### Remarks

Following the move, the moved-from object is in the same state as if constructed using the `basic_socket(const executor_type&)` constructor.