async_write에 추가 boost :: 함수를 제공하고 싶습니다. 나는 연결 자체가 HandleWrite 함수를 먼저 호출하고 제공된 boost :: function을 호출하기를 원한다. 결합 연결boost :: : boost :: function 매개 변수를 사용하여 메서드를 바인딩하십시오.
멤버 메소드
void Connection::HandleWrite( const boost::system::error_code& e, boost::function<void (const boost::system::error_code&)> handler) { // Code removed for clarity if(!handler.empty()) handler(e); };
는 ASIO async_write에 HandleWrite 묶고 핸들러 값으로서 다른 바인딩을 제공하려고 async_write ASIO한다. 이것은 컴파일되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까?
Error 1 error C2825: 'F': must be a class or namespace when followed by '::' boost\bind\bind.hpp 69 Error 2 error C2039: 'result_type' : is not a member of '`global namespace'' boost\bind\bind.hpp 69 Error 3 error C2146: syntax error : missing ';' before identifier 'type' boost\bind\bind.hpp 69 Error 4 error C2208: 'boost::_bi::type' : no members defined using this type boost\bind\bind.hpp 69 Error 5 fatal error C1903: unable to recover from previous error(s); stopping compilation boost\bind\bind.hpp 69
오류 메시지를 제공하면 도움이 될 것입니다. –
위에 오류 메시지가 추가되지 않았습니다. –
문제는 동일한 HandleWrite 함수를 사용하고 올바르게 바인딩되지 않은 다른 장소에있는 것으로 판명되었습니다. 그것을 수정 한 후에 컴파일되었습니다. –