똑똑한 개발/C++

boost::bind

성댕쓰 2021. 5. 29. 17:34

boost::bind 가 하는 일은?

  • 임의의 함수, 함수 포인터, 함수 객체, 멤버 함수를 함수 객체로 만들 수 있다.
  • 원하는 위치에 원하는 값을 전달 시킬 수 있는 함수 객체를 만든다.
#include <boost/bind.hpp>
class A
{
public:
    void Start();
};
std::vector<A> v;
///... (add to v) ...
std::for_each(v.begin(), v.end(), std::bind(&A::Start,_1));

 

인수 고정과 자리표

  • bind에 의해 생성된 함수자가 받을 인수
  • _1, _2 … _n

## 멤버함수와 bind

  • boost::mem_fn
  • boost::bind(&A::Start, _1) 은 사실 boost::bind(boost::mem_fn(&A::Start), _1) 이다.