|  | 
            Move-construct a basic_datagram_socket from a
            socket of another protocol type.
          
template< typename Protocol1, typename Executor1> basic_datagram_socket( basic_datagram_socket< Protocol1, Executor1 > && other, constraint_t< is_convertible< Protocol1, Protocol >::value &&is_convertible< Executor1, Executor >::value > = 0);
This constructor moves a datagram socket from one object to another.
                  The other basic_datagram_socket
                  object from which the move will occur.
                
            Following the move, the moved-from object is in the same state as if
            constructed using the basic_datagram_socket(const executor_type&)
            constructor.