Creating a vector of pointer to functions

2019-05-20 04:28发布

问题:

How do I do this in C++? I know how to create a pointer to a function but that requires having a name for that pointer.
What I actually need is to somehow create a pointer without naming it. I know the syntax for array of ptr to functions. This might help:

out-type (*ptr[size])(parameters...)

回答1:

You should really use a boost/std::function<out_type(parameters)> instead. However, to answer the question at hand, you could use a typedef

typedef out_type(*typedef_name)(param_types);
std::vector<typedef_name> vec;

Or you can just supply the vector with the type directly.

std::vector<out_type(*)(param_types)> vec;


回答2:

typedef void (*ptr)(parameters...);
std::vector<ptr> v;