얼마나 많은 최대 인수 우리는 높일 전달할 수 있습니다 :: 바인드()번호. 부스트 :: 바인드에서 인수의
4
A
답변
10
을 기본적으로 당신이 C로 전환 할 수없는 경우에도이 9
http://www.boost.org/doc/libs/1_45_0/libs/bind/bind.html#NumberOfArguments
3
있어 ++ 11에서는 boost :: function에서 TR1 함수로 전환하는 것을 고려해야합니다. 이는 C++ 11의 미리보기였습니다.
기본적으로 boost :: function으로 시작한 것은 C++ 표준 라이브러리의 일부가되었습니다. 요즘 variadic 템플릿으로 정의됩니다. 간단히 말해서이 (하지만 당신은 당신이 _19
넘어 뭔가를해야 할 경우 추가 자리 표시 자 변수를 정의해야 할 수도 있습니다)
하는 :: 다음
을 TR1 수 std 기능 : 부스트에서 전환 할 하드 제한이 더 이상 없다는 것을 의미합니다는 #include <boost/function>
및 #include <boost/bind>
의 모든 발행 수를 찾을 수에 의해 교체 :
#include <tr1/functional>
using std::tr1::function;
using std::tr1::bind;
using std::tr1::placeholders::_1;
using std::tr1::placeholders::_2;
...
이는 드롭 인 교체로 작동합니다. 나중에 C++ 11로 전환하는 경우 "tr1"부분에 을 던져주십시오.
9 개 이상의 인수가있는 함수를 호출하는 경우 디자인을 다시 생각해 봐야합니다! – GrahamS
@ GrahamS 나는 boost.lambda 바인드가 9까지 걸릴 것이라고 생각합니다. Boost.Spirit.Phoenix, 함수 프로그래밍을 위해 사용하는 라이브러리에는 상한을 정의하는 데 기본 10 w/매크로가 있습니다. – KitsuneYMG
객체를 생성하는 데 사용 된 인수 당 템플리트가 필요한 IOC 시스템을 작성했습니다. 아마도 최대 12 개로 끝났다고 생각할 것입니다. – CashCow