Можно ли создать вектор, в котором функции возвращены назад?
Я пытался что-то сделать с указателями, но он работает только с функциями без параметров.
Например,
#include <iostream>
#include <vector>
using namespace std;
void printInt();
int main()
{
vector<void (*)()> functionStack;
functionStack.push_back(printInt);
(*functionStack[0])();
}
void printInt()
{
cout << "function works!" << 123 << endl;
}
Это работает, но не то, что мне нужно.
Правильная версия - это функция с параметрами: void printInt(int a)
, и вы можете вызывать ее с другими значениями, такими как 4
или -1
, ноиз вектора functionStack
.
Вероятно, сложнее, если функции в векторе имеют разные параметры, поэтому давайте предположим, что каждая функция имеет одинаковый тип и количество параметров.