Упаковка, распаковка и сохранение пакета параметров в кортежеC++

Программы на C++. Форум разработчиков
Anonymous
Упаковка, распаковка и сохранение пакета параметров в кортеже

Сообщение Anonymous »

У меня есть указатель функции и параметры, и я хотел бы сохранить их и, возможно, изменить их и вызвать функцию с их помощью.
Однако я видел ответы на некоторые вопросы Я не уверен, как будет выглядеть полное решение, прошу прощения, но я не совсем понимаю пакеты параметров и то, как они связаны с кортежем.
Вот фрагменты моего кода, которые я пытаюсь работать вместе:
У меня есть это, которое по сути просто вызывает функцию, я думаю, что это можно использовать для сохранения вызова в «вызываемой» структуре, чтобы создать интерфейс.
из этого вопроса:
Вызов универсальной функции C++ с параметром varargs

Код: Выделить всё

template
auto call(R(*function)(Args...), Args... args) -> typename std::enable_if::value, R>::type
{
return function(args...);
}

template
void call(void (*function)(Args...), Args... args)
{
function(args...);
}
Эта структура должна хранить параметры и указатель на функцию. (спасибо RaymondChen за указание, как это должно быть правильно)

Код: Выделить всё

template
struct callable
{
R(*function)(Args...);
std::tuple params;

callable(Args... argv):
params(std::make_tuple(argv...))
{}

// .....
};
Я до сих пор не знаю, как вызвать функцию с помощью std::tuple. Насколько я понимаю, мне следует каким-то образом вернуть кортеж в Args... и затем вызвать его.
**Чего я пытаюсь достичь:
  • Сохранить звонок, чтобы использовать его позже
  • Создать мой звонок и заполнить его моими параметрами из запущенное приложение.
  • Считайте сохраненные параметры, чтобы выполнить какую-либо отладку.**


Подробнее здесь: https://stackoverflow.com/questions/786 ... in-a-tuple

Вернуться в «C++»