¿Alguna solución para desempaquetar un vector para argumentar funciones en C ++?
Realmente estoy pensando en algo similar al operador '*' en python como este:
args = [1,2,4]
f(*args)
¿Hay una solución similar en C ++?
Lo que se me ocurre es lo siguiente:
template <size_t num_args, typename FuncType>
struct unpack_caller;
template <typename FuncType>
struct unpack_caller<3>
{
void operator () (FuncType &f, std::vector<int> &args){
f(args[0], args[1], args[3])
}
};
Encima asumo soloint
tipo de argumento
El problema es que siento que es una molestia escribir todas las especializaciones de unpack_caller por un valor diferente denum_args
.
¿Alguna buena solución a esto? Gracias.