Y at-il une méthode/modèle/bibliothèque pour faire quelque chose comme ça (en pseudo-code):C++ file d'attente méthode liée (? Gestionnaire de tâches/planificateur)
task_queue.push_back(ObjectType object1, method1);
task_queue.push_back(OtherObjectType object2, method2);
pour que je puisse faire le quelque chose comme:
for(int i=0; i<task_queue.size(); i++) {
task_queue[i].object -> method();
}
afin qu'il appellerait:
obj1.method1();
obj2.method2();
Ou est-ce un rêve impossible?
Et s'il existe un moyen d'ajouter un certain nombre de paramètres à appeler, ce serait le meilleur.
Doug T. veuillez voir ceci Excellente réponse!
La version de Dave Van den Eynde fonctionne bien aussi.
Impressionnant, mais que se passe-t-il si j'ai CClass1 et CClass2 et idéalement j'aimerais les stocker tous les deux? –
Aussi je pense qu'il devrait y avoir _method = _ boost :: bind (AMethod, .... –
Nit: bind copie ses arguments par défaut, de sorte que le commentaire "does instance.AMethod (...)" devrait se lire "Does * copy of * instance.AMethod() " Pour vraiment appeler l'instance, boost :: ref() (ou cref) devrait être utilisé pour envelopper l'instance passée à bind(). –