Постройте<basic_datagram_socket>, не открывая его.
explicit basic_datagram_socket(
    boost::asio::io_service & io_service);
  » more...
Постройте и откройте<basic_datagram_socket>.
basic_datagram_socket(
    boost::asio::io_service & io_service,
    const protocol_type & protocol);
  » more...
Постройте<basic_datagram_socket>, открывая его и привязывая к данной локальной конечной точке.
basic_datagram_socket(
    boost::asio::io_service & io_service,
    const endpoint_type & endpoint);
  » more...
Постройте<basic_datagram_socket>на существующем родном гнезде.
basic_datagram_socket(
    boost::asio::io_service & io_service,
    const protocol_type & protocol,
    const native_handle_type & native_socket);
  » more...
<basic_datagram_socket>от другого.
basic_datagram_socket(
    basic_datagram_socket && other);
  » more...
Переместить конструкцию<basic_datagram_socket>из гнезда другого типа протокола.
template<
    typename Protocol1,
    typename DatagramSocketService1>
basic_datagram_socket(
    basic_datagram_socket< Protocol1, DatagramSocketService1 > && other,
    typename enable_if< is_convertible< Protocol1, Protocol >::value >::type *  = 0);
  » more...