아래 코드는 지정된 끝점에 성공적으로 비동기 메시지를 보냅니다. 나는 std::shared_ptr<std::string>
보다는 boost::shared_ptr<std::string>
에 message
의 유형을 변경하는 경우boost :: shared_ptr 대신 std :: shared_ptr을 사용할 때 컴파일 오류가 발생했습니다.
// message is a boost::shared_ptr<std::string>
// open a UDP socket
boost::asio::ip::udp::socket socket(ioService);
socket.open(boost::asio::ip::udp::v4());
// create the remote endpoint
boost::asio::ip::udp::endpoint remoteEndpoint(boost::asio::ip::address_v4::from_string(address), port);
// asynchronously send a datagram to the remote endpoint
socket.async_send_to(boost::asio::buffer(*message),
remoteEndpoint,
boost::bind(&MyClass::handler,
this,
message,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
socket.close();
그러나, 다음 async_send_to
에 대한 호출이 컴파일되지 않습니다.
오류 :
는boost/boost/bind/bind.hpp:457:9: No matching function for call to object of type 'boost::_mfi::mf3<void, MyClass, const boost::shared_ptr<std::__1::basic_string<char> > &, const boost::system::error_code &, unsigned long>'.
사람은 잘못된 것입니다 설명 할 수 있습니까? boost :: bind를 사용하고 있기 때문에 가능성이 있습니까? 문제처럼 handler
기능을하지, std::shared_ptr
boost::shared_ptr
수신 boost::shared_ptr
이 std::shared_ptr
에서 작도 아니라고
'MyClass :: handler'의 프로토 타입은 무엇입니까? – piwi