Я пытаюсь сделать следующее:
boost::shared_ptr< tcp::socket > socket(new tcp::socket( *io_service));
boost::bind(&function, *socket); // compiler error: noncopyable error
function(*socket); // this works fine
void
function(tcp::socket & socket)
{
//do work
}
Почему я получаю сообщение об ошибке с помощью boost :: bind?
Позже я попробовал следующее:
boost::shared_ptr< tcp::socket > socket(new tcp::socket( *io_service));
boost::bind(&function, socket); //this works fine now
void function(boost::shared_ptr< tcp::socket > socket)
{
asio::read_until(&socket, buffer, "end"); // compiler error: says i am passing an invalid argument
}
Почему это не работает сейчас?
Я знаю, что мне не хватает базовых знаний по программированию на C / C ++.
Если бы кто-нибудь мог добавить ссылку, которая поможет с такими проблемами, было бы здорово.