2010-03-03 13 views
7

Je sais que le question has already been asked et a répondu, mais c'était il y a plus d'un an et il semble qu'il y ait de nouvelles alternatives là-bas.Quelle bibliothèque légère d'événements/délégués (signal/emplacement) C++ devrais-je choisir?

Donc je suis en train de coder un jeu avec le SFML library (que je commence à trouver plutôt cool en fait) et je suis à la recherche d'une bibliothèque événementielle/déléguée légère et rapide. Après avoir fait quelques recherches et après avoir mis de côté les classiques (Boosts.Signals,), j'ai trouvé "cpp-events". Il ne semble pas très populaire en ce moment - puisque c'est une bibliothèque très récente - mais il semble que ce soit pire à tester. Je serais très intéressé de savoir si quelqu'un ici l'a essayé et peut donner un peu de rétroaction.

Avez-vous d'autres options similaires (ou mieux) à suggérer? Je regarde plutôt de vrais projets (qui seront maintenus) que des réponses sur des forums.

Merci!

+0

L'autre question peut être mise à jour avec de nouvelles réponses et/ou modifications. –

Répondre

3

Mon sentiment est que http://www.codeproject.com/KB/cpp/ImpossiblyFastCppDelegate.aspx est une excellente implémentation pour les jeux. Pas d'allocation de mémoire dynamique, des performances raisonnables, simple à déboguer => idéal pour les jeux.

J'ai utilisé des délégués similaires dans le passé, cette implémentation semble plus efficace.

Celui que vous avez suggéré mentionne la sécurité des threads, mais je ne serais pas à l'aise avec l'utilisation d'une interface déléguée entre les threads. Cela peut fonctionner correctement sur un petit projet, mais si une équipe se développe, le potentiel de désastre est également important. Je voudrais également remettre en question les implications de performance d'une telle fonctionnalité.

3

Jetez également un coup d'œil à Boost.Signals2 qui est la version thread-safe de Boost.Signals. Je l'utilise au travail dans un projet de taille moyenne et j'en suis très content.

+0

+1 J'utiliserais Signals2 même si la sécurité des threads n'est pas nécessaire car elle est également en-tête uniquement. – Tronic