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