Я знаю, что вопрос уже задали и ответили, но это было больше чем один год назад, и похоже, что там существуют новые альтернативы.
Таким образом, я кодирую игру с библиотекой SFML (который я начинаю находить в значительной степени прохладным на самом деле), и я ищу легкую и быструю библиотеку события/делегата.
После проведения некоторого исследования и откладывавший классические (Повышения. Сигналы, libsigc ++), я нашел "cpp-события". Это не выглядит очень популярным прямо сейчас — так как это - очень недавняя библиотека — но это кажется худшим, чтобы быть протестированным. Мне очень было бы интересно знать, попробовал ли кто-то здесь его и может дать немного обратной связи.
У Вас есть другое подобное (или лучше) опциями предложить? Я смотрю довольно реальные проекты (который будет сохраняться), чем ответы на форумах.
Спасибо!
Мне кажется, что http://www.codeproject.com/KB/cpp/ImpossibleFastCppDelegate.aspx - отличная реализация для игр. Нет динамического распределения памяти, разумная производительность, простая отладка => отлично подходит для игр.
Я использовал подобные делегаты в прошлом, эта реализация выглядит более эффективной.
В предложении упоминается безопасность потоков, но мне было бы неудобно использовать интерфейс на основе делегатов между потоками. Это может хорошо сработать для небольшого проекта, но если команда растет, увеличивается и вероятность катастрофы. Я бы также поставил под сомнение влияние такой функции на производительность.
Также посмотрите на Boost.Signals2, который является потокобезопасной версией Boost.Signals. Я использую его на работе в проекте среднего размера и вполне им доволен.