конструкция:
acceptor_.async_accept(
net::make_strand( ioc_ ),
beast::bind_front_handler(
&listener::on_accept,
shared_from_this() ) );
При этом on_accept принимает два аргумента - error_code и socket.
Подскажите, зачем нужен непонятный bind_front_handler (по описанию он делает то же самое, что и обычный)
И как это заменить на лямбду?
Никак не пойму, как это вообще работает
вероятно, bind отличается тем, что работает с shared_ptr<>
с обычным пришлось бы дописывать , _1, _2 заменить на лямбду как-то так: [self = shared_from_this()] (error_code ec, socket s) { self->on_accept(ec, s); }
Обсуждают сегодня