Jakiekolwiek rozwiązanie do rozpakowania wektora do argumentów funkcji w C ++?

W rzeczywistości myślę o czymś podobnym do operatora '*' w pythonie w ten sposób:

args = [1,2,4]
f(*args)

Czy istnieje podobne rozwiązanie w C ++?

Oto, co mogę wymyślić:

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])
    }
};

Powyżej zakładam tylkoint typ argumentu.

Problem polega na tym, że uważam, że pisanie wszystkich specjalizacji unpack_caller dla różnych wartościnum_args.

Jakieś dobre rozwiązanie tego? Dzięki.

questionAnswers(1)

yourAnswerToTheQuestion