Bonjour tout le monde,
je suis confronté à un problème qui parait simple de prime abord, mais qui s'est avéré plus ardu que prévu (à moins que ce soit moi qui, à force de me triturer les méninges, cherche trop la complication). Je m'explique:
J'ai des événements à traiter. Pour ce post, nous pouvons considérer ces événements comme une structure qui comprend un poids et un pointeur de fonction.
J'ai plusieurs type d'événements. J'ai donc une classe mere Event, et plusieurs classes fille.
Je dois stocker mes événements dans un conteneur. Ils doivent être triés selon leur poids. J'ai donc opté pour un std::set.
Problème: étant donné que mon set va contenir differents type d'evenements, je suis contraint de n'y stocker que des pointeurs: std::set<Event*>.
=> Du coup, je ne peux pas implémenter mon opérateur < pour m'assurer de la façon dont vont être triés mes événements dans le set.
Question: y a-t-il quelque chose qui cloche dans mon raisonnement? Si non, quelle est la solution? (créer une classe Bidon qui va contenir un Event* et faire un set de cette classe Bidon ne me plait guère...)
Partager