Я попытался превратить this boost-asio server в класс, и я получил эту ошибку, пытаясь ее скомпилировать,C++: ошибка BOOST-привязки: нет соответствующей функции для вызова функции bind (<неразрешенный перегруженный тип функции>, ...?
C:\Documents and Settings\tcpip_server\TCPIP_server.h||In member function 'void TCPIP_server::server(boost::asio::io_service&, short int)':|
C:\Documents and Settings\tcpip_server\TCPIP_server.h|56|error: no matching function for call to 'bind(<unresolved overloaded function type>, boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >&)'|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\bind\bind.hpp|1472|note: candidates are: boost::_bi::bind_t<boost::_bi::unspecified, F, typename boost::_bi::list_av_1<A1>::type> boost::bind(F, A1) [with F = void (TCPIP_server::*)(boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >), A1 = boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >]|
c:\program files\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\boost\bind\bind.hpp|1728|note: boost::_bi::bind_t<typename boost::_bi::dm_result<M T::*, A1>::type, boost::_mfi::dm<M, T>, typename boost::_bi::list_av_1<A1>::type> boost::bind(M T::*, A1) [with A1 = boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >, M = void(boost::shared_ptr<boost::asio::basic_stream_socket<boost::asio::ip::tcp, boost::asio::stream_socket_service<boost::asio::ip::tcp> > >), T = TCPIP_server]|
||=== Build finished: 1 errors, 3 warnings ===|
Я знаю, что я должен как-то бросили тип для функции session
но нет никакой двусмысленности, так как только одна void
функции существует. Я проверить this thread, но я до сих пор путаю ошибку. ЭРВО код .
основная.cpp
#include "TCPIP_server.h"
int main()
{
return 0;
}
TCPIP_server.h
Первым параметром 'session' является' TCPIP_server * ', а не' socket_ptr'. – chris
Как сказал Крис, вы пытаетесь привязать к функции * member *, для которой требуется неявный параметр 'this'. Вот ссылка, которая может привести в правильном направлении: http://stackoverflow.com/a/2304211/368896 –