Любое решение, чтобы распаковать вектор для аргументов функции в C ++?
На самом деле я думаю о чем-то похожем на «*»; оператор в питоне так:
args = [1,2,4]
f(*args)
Есть ли подобное решение в C ++?
Я могу придумать следующее:
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])
}
};
Выше я предполагаю толькоint
тип аргумента.
Проблема в том, что я чувствую, что написать все специализации unpack_caller для разных значенийnum_args
.
Любое хорошее решение для этого? Благодарю.