2013-02-27 4 views
0

boost :: fusion 호출 가능 객체에 enable_if를 사용하는 방법이 있습니까?enable_if boost :: fusion callable

template<typename F> 
void do_something(F f, enable_if< is_fusion_callable_object<F> >::type * = 0) 
{ 
    // how to define the "is_fusion_callable_object<> ? 
} 

여기서 F는 지금 성공하지 않고 때까지, 나는 비슷한 시도 매개 변수

답변

1

으로 임의의 순서를 취할 수있는 융합 "융합 기능"입니다. 첫 번째 성공적인 시도는 boost praeprocessor makros를 통해 다른 수의 템플릿 매개 변수에 대해 다른 템플릿을 만드는 것이 었습니다. 내가 가변 인자 템플릿 솔루션을 사용할 수 VC10을 사용했다 이후 예에서이

template <typename P1, ......> 
do_something(boost::fusion::vector<P1, ....> const& v) 

이 될 것입니다. 아마도 이것은 당신을 더 멀리 도울 수 있습니다.