I'm trying to put together a undo/redo architecture using Functors.  I need functors with different template arguments:

Loki::Functor<void> c1(pDog, &Dog::Speak);
Loki::Functor<void, LOKI_TYPELIST_1(int)> c2(pDog, &Dog::RollOver);
Loki::Functor<void, LOKI_TYPELIST_1(std::string)> c3(pParrot, &Parrot::Listen);

I'd like to store c1, c2, and c3 in a list of some sort, but I don't know how to do this.  Any ideas?