#include <iostream>
#include <list>
#include <functional>
class Base
{
public:
virtual void foo() = 0;
virtual ~Base(){}
};
template<typename T>
class TClass:public Base
{
public:
TClass(T value) :value(value) {}
T value;
void foo()
{
//if(value is std::function)
//call function;
}
};
int main()
{
std::list<Base*>l;
l.push_back(new TClass<int>(12));
l.push_back( new TClass<std::function<void(void)>>([]()->void {std::cout << "func1" << std::endl; }));
for(auto i=l.begin();i!=l.end();i++)
(*i)->foo();
for(auto i=l.begin();i!=l.end();i++)
delete (*i);
system("pause");
return 0;
}
I want create list with any parameters and if that is function call this.
Aucun commentaire:
Enregistrer un commentaire