방금 C++의 템플릿에 대해 배우기 시작했고 전문 용어를 잘 모르고 있지만 이것이 내가 원하는 것입니다. 세 가지 기능이 있다고 가정 해 보겠습니다. 템플릿 기능에 과부하가 있지만 사용하지 않고 함수 "컴퓨팅"을 정의 할 수있는 방법이 있나요C++ 템플릿이 가능합니까?
void compute(double (*func)(double))
{
func(1);
std::cout << "1 argument here";
}
void compute(double (*func)(double, double))
{
func(1,2);
std::cout << "2 arguments here";
}
void compute(double (*func)(double, double, double))
{
func(1,2,3);
std::cout << "3 arguments here";
}
:
double fa(double a)
{
return a;
}
double fb(double a, double b)
{
return (a+b);
}
double fc(double a, double b, double c)
{
return (a+b+c);
}
하자 내가라는 컴퓨팅의 새로운 기능에 FA, FB 또는 FC 기능을 전달하고 싶은 말은 대신에? 그래서 임의의 수의 인수를 가진 함수를 전달할 수 있습니다.
는 항상 1,2,3을 통과하는 ... ? – chris
이것은 Haskell이나 OCaml이 아니기 때문에 C++은 실제로 다중 인수 함수를 가지고 있으며 currying하지 않습니다. 따라서 그것은 'void compute (double (* func) (double, double, double))'이어야합니다. ' –
Ops, fixed. 네, 항상 1,2,3을 통과한다고 해봅시다. – Winten