将元素插入std :: vector <void **(void *)=“”> </void>

时间:2015-01-01 21:20:51

标签: c++ pointers vector

我需要从定义为

的向量中插入和检索元素
std::vector<void **(void*)> array;

我想要push_back的元素定义为:

void *element(void *)

最后,给定void* data我想以下列方式使用该元素:

array[i](data);

不幸的是我找不到调用array.push_back的正确方法 有人可以帮我这个吗?

1 个答案:

答案 0 :(得分:7)

这是返回void**的函数向量,这是不可能的。函数不是对象,不能将它们存储在向量中。

(函数类型作为模板类型参数是合法的,有些模板类型使用这些,例如std::function和某些类型特征......但std::vector要求其参数为对象类型)

尝试

std::vector<void* (*)(void*)>

创建一个函数指针向量。

然后你需要

array.push_back(&element);