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的正确方法.
有人可以帮我弄这个吗?
这是函数返回的向量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)
| 归档时间: |
|
| 查看次数: |
324 次 |
| 最近记录: |