Для вопроса, который породил этот;
У меня есть следующая функция;
template<typename... Arguments, typename... Params>
Runnable<Params...>* makeRunnable(void (*FunctionType)(Arguments..., Params...), Arguments... args)
{
return new FunctionDelegate<Arguments..., Params...>(FunctionType, makeTuple(args...));
}
Который я хотел бы адаптировать к решению, данному «ForEveR», в предыдущем вопросе я попытался без удачи.
template<typename... Arguments, typename... Params>
Runnable<Params...>* makeRunnable(void (*FunctionType)(tuple<Arguments...>, tuple<Params...>), tuple<Arguments...> args)
{
return new FunctionDelegate<tuple<Arguments...>, tuple<Params...>>(FunctionType, args);
}
Что приводит к ошибке;
error: no matching function for call to ‘makeRunnable(void (&)(tuple<int, int>, tuple<int>), tuple<int, int>)’
Мне удалось это исправить самому;
// Create a function delegate as runnable
template<typename... Arguments, typename... Params>
Runnable<Params...>* makeRunnable(void (*FunctionType)(tuple<Arguments...>, tuple<Params...>), Arguments... args)
{
return new FunctionDelegate<tuple<Arguments...>, tuple<Params...>>(FunctionType, makeTuple(args...));
}
Других решений пока нет …