将元素插入std :: vector <void**(void*)>

HAL*_*000 2 c++ pointers vector

我需要从定义为的向量中插入和检索元素

std::vector<void **(void*)> array;
Run Code Online (Sandbox Code Playgroud)

我想要push_back的元素定义为:

void *element(void *)
Run Code Online (Sandbox Code Playgroud)

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

array[i](data);
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*igt 7

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

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

尝试

std::vector<void* (*)(void*)>
Run Code Online (Sandbox Code Playgroud)

创建函数指针的向量.

那你就需要了

array.push_back(&element);
Run Code Online (Sandbox Code Playgroud)