我需要从定义为
的向量中插入和检索元素std::vector<void **(void*)> array;
我想要push_back的元素定义为:
void *element(void *)
最后,给定void* data
我想以下列方式使用该元素:
array[i](data);
不幸的是我找不到调用array.push_back的正确方法 有人可以帮我这个吗?
答案 0 :(得分:7)
这是返回void**
的函数向量,这是不可能的。函数不是对象,不能将它们存储在向量中。
(函数类型作为模板类型参数是合法的,有些模板类型使用这些,例如std::function
和某些类型特征......但std::vector
要求其参数为对象类型)
尝试
std::vector<void* (*)(void*)>
创建一个函数指针向量。
然后你需要
array.push_back(&element);