##### basic_socket_acceptor::basic_socket_acceptor (6 of 10 overloads)

Construct an acceptor opened on the given endpoint.

    template<
        typename ExecutionContext>
    basic_socket_acceptor(
        ExecutionContext & context,
        const endpoint_type & endpoint,
        bool reuse_addr = true,
        constraint_t< is_convertible< ExecutionContext &, execution_context & >::value >  = 0);

This constructor creates an acceptor and automatically opens it to listen for new connections on the specified endpoint.

###### Parameters

context

  An execution context which provides the I/O executor that the acceptor will use, by default, to dispatch handlers for any asynchronous operations performed on the acceptor.

endpoint

  An endpoint on the local machine on which the acceptor will listen for new connections.

reuse_addr

  Whether the constructor should set the socket option `socket_base::reuse_address`.

###### Exceptions

asio::system_error

  Thrown on failure.

###### Remarks

This constructor is equivalent to the following code:

    basic_socket_acceptor<Protocol> acceptor(my_context);
    acceptor.open(endpoint.protocol());
    if (reuse_addr)
      acceptor.set_option(socket_base::reuse_address(true));
    acceptor.bind(endpoint);
    acceptor.listen();