Вы не можете хранить template
s в vector
, только objects
, которые имеют types
. И template
становится type
, когда оно создается.
Итак, вы не можете делать именно то, что вы хотите.
Я рекомендую вам использовать function
и bind
. Смотрите пример:
struct A
{
void call()
{
std::cout << "hello";
}
};
int main()
{
std::vector <std::function<void()>> v;
v.push_back(std::bind(&A::call, A()));
for (auto it = v.begin(); it != v.end(); ++it) {
(*it)();
}
return 0;
}
Это именно то, что вы хотите.