David wrote:
Hi,
I'm trying to use asio, and I run into a compiler error when using async_connect. I don't think this is an asio issue, perhaps a compiler or bind issue. Errors and code snippet below. I'm perplexed by the error, as apparently the compiler can't if 'this' should be passed as a pointer, or by reference. I also tried alternate syntax using bind and mem_fn as mentioned in the bind docs, but that gave exactly the same error.
What's causing this error, and what can I do to fix it?
using gcc 4.2.3:
.../boost_1_36_0/boost/bind.hpp:292: error: no match for call to ‘(boost::_mfi::mf1
) (Connection*&, boost::asio::error::basic_errors&)’
These should be boost::asio::placeholders:error as in: m_acceptor.async_accept(m_socket,boost::bind(&local::accept,this,boost::asio::placeholders::error)); and the function will look like this: void local::accept( const boost::system::error_code& e ) { }
.../boost_1_36_0/boost/bind/mem_fn_template.hpp:160: note: candidates are: R boost::_mfi::mf1
::operator()(T*, A1) const [with R = void, T = Connection, A1 = boost::system::error_code&] .../boost_1_36_0/boost/bind/mem_fn_template.hpp:179: note: R boost::_mfi::mf1 ::operator()(T&, A1) const [with R = void, T = Connection, A1 = boost::system::error_code&] //code
class Connection { public: //... void onConnected(boost::system::error_code&); //... };
_socket.lowest_layer().async_connect(*_epit, boost::bind(&Connection::onConnected, this, placeholders::error));
_______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users