본문 바로가기
프로그래밍/boost

boost::bind 의 기본 사용법 예제

by neive 2011. 11. 16.
728x90



boost::bind 의 이용 예제.. 사실상 응용이라던가 더 복잡한 쓰임은 있지만 대략 이런 역활을 한다
는 것을 익힐 뿐이고 상세한 이용은 검색을 더 해보는 것이 좋을 듯. 실제 asio 에제를 보면 더 많이
, 여러기능이 쓰이는 것을 알 수 있다
예제

// start
#include "stdafx.h"

#include <regex>
#include <tuple>
#include <functional>
#include <boost/bind.hpp>
#include <boost/function.hpp>

int no_arg()
{
	return 0;
}

struct one_arg
{
	int operator () (int i) const
	{
		return i;
	}

	typedef int result_type;
};

struct two_arg
{
	int val;
	two_arg(int v) : val(v) {}
	int f(int i, int j) const
	{
		return val + i + j;
	}
};

class ref_arg
{
public:
	void f(int& i)
	{
		++i;
	}
};

int _tmain(int argc, _TCHAR* argv[])
{
	int res = 0;
	res = boost::BOOST_BIND(no_arg)();

	one_arg arg1;
	res = boost::BOOST_BIND(arg1, 2011)();

	two_arg arg2(2011);
	res = boost::BOOST_BIND(&two_arg::f, arg2, 1, 2)();

	ref_arg arg3;
	res = 0;
	boost::BOOST_BIND(&ref_arg::f, arg3, _1)(res);	// _1 은 첫번째 인자를
	std::cout << res << std::endl;	// output 1

	res = 0;
	boost::BOOST_BIND(&ref_arg::f, arg3, res);
	std::cout << res << std::endl;	// output 0

	int n;
	std::cin >> n;

	return 0;
}
// end
728x90

'프로그래밍 > boost' 카테고리의 다른 글

boost::mutex  (0) 2012.03.26
boost::unordered set, map, mutiset, multimap  (0) 2012.03.26
boost::mem_fn 예제에 std::tr1::tuple 예제의 조합  (0) 2011.11.15
boost::asio 비동기 서버/클라 step 1  (0) 2011.11.09
WorkQueue & Worker  (0) 2011.11.08

댓글