2013-10-24 4 views
0

아래 템플릿 함수가 있습니다. 이제 각 템플릿 함수와 매개 변수가 될 매개 변수를 가진 testfun 함수를 추가하고 싶습니다. 하지만 testfun을 정의하고 구현하는 방법을 모르겠습니다. 모든 의견을 부탁드립니다. 감사!다른 함수에 템플릿 함수를 전달하는 방법

template<typename T> 
T hoo(T x) 
{ 
    return x; 
} 

template<typename T, typename... Args> 
T hoo(T first, Args... rest) 
{ 
    return first + hoo(rest...); 
} 

int a = 1, b = 2, c = 3; 
int tsum = hoo<int>(a, b); 
std::cout << tsum << std::endl; 

std::string sa = "a", sb = "b"; 
std::string tssum = hoo<std::string>(sa, sb); 
std::cout << tssum << std::endl; 

testfun(hoo, a, b);  //testfun looks like this 
testfun(hoo, sa, sb);  //testfun looks like this 
//[Update] Add more request 
testfun(hoo, a, b, c);  //testfun also support this 

답변

0

나는 당신이 원하는 가정이 :

template <typename T, typename... Args> 
T testfun(T (&f) (T, Args...), T tail, Args... queue) 
{ 
    return f(tail, queue...); // or any other implementation 
}