Как можно заменить все boost::bind на лямбды в коде ниже??? Почему при попытке в функции accept заменить boost::bind на std::bind, компилятор выдает ошибку No matching function for call to 'bind' и как это исправить.
void accept();
void out(char* buff){
printf("%s\n", buff);
accept();
}
void read(std::shared_ptr<tcp::socket> session){
char buff[30000];
session->async_receive(boost::asio::buffer(buff, 1024), boost::bind(out, buff));
session->close();
}
void accept(){
std::shared_ptr<tcp::socket> session(new tcp::socket(context));
acceptor.async_accept(*session, boost::bind(read, session));
}
int main(){
std::shared_ptr<int> a(new int(5));
accept();
context.run();
return 0;
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей