Мы написали большую библиотеку функций, прототипы которых в основном выглядят так:
void my_fun(
const in_class & in_param_1,
const in_class & in_param_2,
const in_class & in_param_3,
out_class & out_param);
Есть ли общий способ обернуть эти функции так, чтобы следующее было эквивалентным (предполагая, что out_param записывается только в my_fun):
out_class my_out;
my_fun(my_in1,my_in2,my_in3,my_out);
и
out_class my_out = generic_wrapper(&my_fun,my_in1,my_in2,my_in3);
Как можно написать такой generic_wrapper?Если это возможно, можно также записать его так, чтобы число входных параметров было переменным, поэтому я мог бы использовать его, скажем, с my_fun2, который, возможно, занимает 4 in_param_'s?