boost :: asio 인수를 바인딩하려고합니다.boost :: bind 정적 함수의 인수
template <typename T>
struct bind_struct{
typedef boost::system::error_code error_code;
typedef boost::asio::ip::tcp::acceptor tcp_acceptor_type;
typedef std::shared_ptr<boost::asio::ip::tcp::socket> socket_type;
static void tcp_on_async_accept(error_code& er,
tcp_acceptor_type* acc,
socket_type socket){
std::cout << "ok" << std::endl;
}
static void good_function(int m){
std::cout << m << std::endl;
}
};
바인딩 작업 : 문제가 여기에 무엇
/*Error*/
bind_struct<void>::socket_type sock;
bind_struct<void>::tcp_acceptor_type* acc;
auto fn = boost::bind(bind_struct<void>::tcp_on_async_accept,
boost::asio::placeholders::error,
acc, sock);
fn();
/*Ok*/
auto fn1 = boost::bind(bind_struct<void>::good_function,_1);
fn1(10);
바인딩 기능 구조의 정적 멤버입니까? Errors.
'bind()'는 멤버 함수를 호출하지 않고 멤버 함수를 바인딩하려고하기 때문에 혼동 될 수 있습니다. '& sock'을 두번째 인자로'bind()'에 넘겨 주면 에러가 바뀌는가? – Chad
링크로 @Chad smart_poiter 정상입니까? http://coliru.stacked-crooked.com/a/7615c6464bd2d488 – crastinus