Gibt es eine Lösung zum Entpacken eines Vektors in Funktionsargumente in C ++?

Eigentlich denke ich an etwas Ähnliches wie den Operator '*' in Python:

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

Gibt es eine ähnliche Lösung in C ++?

Was ich mir einfallen lassen kann, ist wie folgt:

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

Oben nehme ich nur anint Argumenttyp.

Das Problem ist, dass ich denke, es ist mühsam, alle Spezialisierungen von unpack_caller für unterschiedliche Werte von zu schreibennum_args.

Irgendeine gute Lösung dafür? Vielen Dank.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage