다음 함수가 있습니다.variadic C++ 11 템플릿 람다 함수의 반환 유형 결정
template<typename T, typename U, typename... Parameters>
void transform(void (*func)(Parameters...))
{
auto lambda_function = [func](T args, U params)
{
auto combined = std::tuple_cat(args, params);
helper(func, combined);
};
return lambda_function;
}
나는 가능한 반환에 대한 유형 또는 호출하는 방법을 찾을 수 없습니다 그건, 내가 모두이 호출 할 수 있도록하고 싶습니다;
auto func = transform<std::tuple<char,int>, std::tuple<const char*>>(f);
func(arg, param);
주어진 'f', 'arg'및 'param'은 다음과 같습니다.
void f(char arg1, int arg2, const char* arg3);
std::tuple<char,int> arg = std::tuple<char,int>('C',-3);
std::tuple<const char*> param = std::tuple<const char*>("PO");
누구나 힌트 또는 해결책이 있습니까?
참고 : 코드는에서 찾을 수 있습니다. Linkage
질문 : "인수"와 "매개 변수"의 정의의 차이점을 알고 계십니까? – Xeo
@ Xeo : 네이밍이 나쁘다는 것을 알고 있습니다. 시스템이 작동하면 변경 될 수 있습니다. – Skeen
"나쁜"이라는 이름을 붙이는 것만이 아닙니다. 어떻게 표현하는지 모르면 어떻게 이런 식으로 올바르게 구현할 수 있습니까? "인수"와 "매개 변수"의 올바른 정의를 사용하면이 코드가 전혀 의미가 없습니다 (읽기 : 없음). – Xeo