функция makeDelegate не работает

Для вопроса, который породил этот;

У меня есть следующая функция;

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>)’

2

Решение

Мне удалось это исправить самому;

// 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...));
}
3

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector