의 입력/출력 형태를 취득 나는 다음과 같은 문제가있다 : 당신이 위의 볼 수 있듯이호출
template<typename Func, typename T_in = /*input type of Func */, typename T_out = /*output type of Func */>
std::vector<T_out> foo(Func f, const std::vector<T_in>& input)
{
std::vector<T_out> res(input.size());
for(size_t i = 0 ; i < input.size() ; ++i)
res[ i ] = f(input[ i ]);
return res;
}
int main()
{
// example for f(x) = x*x
std::vector<float> input = { /* ... */ };
auto res = foo([](float in){ return in*in; }, input);
return 0;
}
, 내가 입력 벡터 input
의 각 요소에 함수 f
매핑하는 기능 foo
을 구현하려고합니다. 내 문제는 다음과 같습니다 : 입력 벡터 input
의 요소가 입력 형식이 f
(즉, T_in
)이고 출력 벡터의 요소가 출력 형식이 f
(예 : T_out
)이되도록하고 입/foo
(코드의 가독성 향상)으로 명시 적으로 f
의 출력 유형입니다. 누구든지 입력/출력 유형 f
을 컴파일 타임에 자동으로 추론 할 수있는 아이디어가 있습니까?
미리 감사드립니다.
감사합니다. 간략하게하기 위해 위의 게시물에서 간단한 예제를 사용했습니다. 불행히도 표준 라이브러리를 사용하여 실제 예제를 구현할 수 없습니다. –