bind, function 간단 사용 방법
boost, tr1 다 설명...
// bind 할 함수
int sum( int a , int b )
{
return a+b;
}
// boost bind 사용
// _1, _2 는 입력 인자
#include <boost/bind.hpp>
boost::bind( &sum, _1, _2 );
// tr1 bind 사용
// boost와는 다르게 인자를 쓸려면 std::tr1::placeholders 사용 해야함.
#include <functional>
std::tr1::bind( &sum, std::tr1::placeholders::_1, std::tr1::placeholders::_2 );
///////////////////////////////////////////////////////////////////////////////////////////////
// bind 한 함수를 담는 boost::function
#include <boost/function.hpp>
boost::function< int(int, int) > temp = boost::bind( &sum, _1, _2 );
// bind 한 함수를 담는 std::tr1::function
#include <functional>
std::tr1::function< int(int, int) > temp = std::tr1::bind( &sum, std::tr1::placeholders::_1, std::tr1::placeholders::_2 );
///////////////////////////////////////////////////////////////////////////////////////////////
// bind class 처리 - tr1 도 똑같아용....
class boostBind
{
private:
std::vector< boost::function< int( int, int ) > > m_funcArray; // 바인딩 한 함수를 모으기 위한 vector
public:
boostBind()
{
m_funcArray.push_back( boost::bind( &boostBind::sum, this, _1, _2 ) );
m_funcArray.push_back( boost::bind( &boostBind::sub, this, _1, _2 ) );
}
~boostBind() {}
int sum( int a , int b )
{
return a+b;
}
int sub( int a , int b )
{
return a-b;
}
void run()
{
// 덧셈 함수 호출
int temp1 = m_funcArray[0]( 100, 200 );
// 뺄셈 함수 호출
int temp2 = m_funcArray[1]( 200, 100 );
}
};
RECENT COMMENT