我想创建一个函数向量和“push_back”它,但不知道它是如何正确完成的。 Thx,提前。这就是我到目前为止所做的:
int a = 1;
int b = 2;
int function1()
{
return (a+b)*c;
}
typedef std::function<int> function1;
typedef std::vector<function> functionsvector;
functionvector.push_back(function1);
答案 0 :(得分:4)
你不应该在这里使用typedef
。这意味着您将这些类型别名化为您指定的名称,而不是创建它们的实例。
你应该这样做:
//create a vector of functions which take no arguments and return an int
std::vector<std::function<int()>> functionvector {};
//implicitly converts the function pointer to a std::function<int()> and pushes
functionvector.push_back(function1);