2012-09-02 2 views
5

나는 이것에 대한 대답이 '아니오'라고 생각하지만, 나는 단지 그것을 알고 싶다.std ::와 boost :: s :: bind 및 :: function이 섞일 수 있습니까?

함수에서 매개 변수로 std::function을 사용하는 경우 boost::bind을 전달할 때 문제가 있습니까?

편집 :

난 당신이 부스트 \의 bind.h을 포함 할 때 부스트 : : 바인딩에서 사용하는 자리가 네임 스페이스에 직접 가져, 그들은 표준 : 바인드와 호환되지 않는 것을 발견했다. std :: bind의 경우에는 std :: placeholders :: _ 1과 같이 명시 적으로 placeholder를 참조하거나 다른 typedef를 사용하거나 매직을 사용하여 둘 다 동시에 사용할 수 있도록해야합니다.

+0

중첩 된 바인드 표현식을 인식하고 다른 라이브러리가이 점에서 어떻게 상호 작용하는지 확인할 수 있습니다. –

답변

10

std:: (및 boost::)의 전체 목적 function들은 람다, 펑 포함한 올바른 signature- 호출 할 수있는 함수 객체와 결합 어떠한 결과를 수용 할 수 있다는 것이다. 함수 객체가 어디서 왔는지 또는 어떤 유형인지는 상관하지 않습니다.

왜 내가 원하는지는 모르겠지만 서로 바인딩 할 수 있습니다.

+1

나를 확인해 주셔서 감사합니다. std :: placeholders :: _ 1을 사용하여 std의 자리 표시자를 명시 적으로 지정해야하므로 std :: bind의 자리 표시 자와 충돌하는 네임 스페이스에 자리 표시자를 가져 오는 것이 좋습니다. – cwm9

관련 문제