【发布时间】:2012-07-16 13:44:18
【问题描述】:
我在编译这段代码时遇到问题
/usr/include/boost/bind/bind_mf_cc.hpp:91:5: 错误:正在初始化 'boost::_bi::bind_t, typename boost::_bi::list_av_4::type> boost:: 的参数 5 bind(R (T::*)(B1, B2, B3), A1, A2, A3, A4) [其中 R = void; T = tcpReader; B1 = const boost::system::error_code&; B2 = 无符号整数; B3 = boost::asio::basic_streambuf&; A1 = tcpReader*; A2 = boost::system::error_code; A3 = 无符号整数; A4 = boost::asio::basic_streambuf;类型名 boost::_bi::list_av_4::type = boost::_bi::list4, boost::_bi::value, boost::_bi::value, boost::_bi::value >]
void tcpReader::handle_read(const boost::system::error_code& ec, std::size_t bytes_transferred, boost::asio::streambuf& buf)
// inside a class method
boost::asio::streambuf buf;
boost::asio::async_read_until(*sock,buf,"\n" ,
boost::bind(&tcpReader::handle_read,this,error,buf.size(),buf)
);
关于问题是什么的任何想法?我知道我遗漏了一些简单的东西,但我不知道是不是我必须使用 boot::buffer ?
提前致谢
【问题讨论】:
-
你应该分别使用
boost::asio::placeholders::error和boost::asio::placeholders::bytes_transferred而不是err和buf.size()吗? -
您可能还需要用
boost::ref(buf)包装最后一个参数buf。
标签: c++ boost boost-asio boost-bind