멤버 함수를 boost :: asio의 async_accept() 메서드에 대한 AcceptHandler로 전달하려고합니다.boost :: asio acceptor.async_accept()에 멤버 함수를 전달하는 방법
을 충족하지 : 내가 말하는 컴파일 오류가 발생하면 다음 줄에 오류가 발생하는 경우 이AcceptHandler 유형 요구 사항은 연결된 줄에서
//이 있음을 의미하여 핸들러가 문서화 된 AcceptHandler 요구 사항을 충족시키지 못합니다. documentation
핸들러는 다음과 같이한다 말한다 :
void accept_handler(const boost::system::error_code& error) //documentation
{
if (!error)
{
// Accept succeeded.
}
}
내 멤버 함수는 다음과 같습니다
void WifiConnector::onAccept(const boost::system::error_code &ec) //my code
{
if (ec) {
std::cout << ec.message();
return;
}
socket.async_read_some(boost::asio::buffer(mBuffer), &WifiConnector::readHandler);
}
내가 점에서 차이를 찾을 수 없습니다. 그것은 내가 가정 멤버 함수이기 때문에
acceptor.async_accept(socket, &WifiConnector::onAccept); //my code
대신
acceptor.async_accept(socket, accept_handler); //documentation
의 :
는하지만이 같은 acceptor.async_accept() 메서드를 호출해야합니다. 난 그냥 문서처럼 통과하려고하면 제안 : 오버로드 기능없이 예 :
acceptor.async_accept(socket, onAccept); //my code
라는 오류가 있습니다.
멤버 함수를 잘못된 방식으로 전달했거나 잘못했기 때문에 오류가 발생 했습니까?
편집 : 내가 길을 잘못 또는 무엇에 멤버 함수를 통과하고 있기 때문에 나는 수용체 등
& WifiConnector :: onAccept의 개체는 어디에 있습니까? 그 정적 메서드가 아닙니다. –
다른 곳에서 만들어지고 시작 전화 만받습니다. 다른 모든 메소드 호출 (예 :'async_accept()')은 객체 내에서 수행됩니다. – MrJonas