Я знаю, что тема «делегатов C ++» уже зарезана, и оба http://www.codeproject.com и http://stackoverflow.com подробно осветите вопрос.
Как правило, кажется, что самый быстрый делегат Дона Клагстона - лучший выбор для многих людей. Есть несколько других популярных.
Однако я заметил, что большинство из этих статей старые (около 2005 года), и многие дизайнерские решения, похоже, были сделаны с учетом старых компиляторов, таких как VC7.
Мне нужна очень быстрая реализация делегирования для аудиоприложения.
Мне все еще нужно, чтобы он был переносимым (Windows, Mac, Linux), но я использую только современные компиляторы (VC9, тот, что в VS2008 SP1 и GCC 4.5.x).
Мои основные критерии:
Кроме того, мне действительно не нужны экзотические функции. Мне просто нужен старый добрый указатель на метод. Нет необходимости поддерживать статические методы, бесплатные функции и тому подобное.
На сегодняшний день какой рекомендуемый подход? Все еще пользуетесь версией Дона ? Или существует «консенсус сообщества» по поводу другого варианта?
Я действительно не хочу использовать Boost.signal / signal2, потому что это неприемлемо с точки зрения производительности. Зависимость от QT также недопустима.
Кроме того, я видел несколько новых библиотек во время поиска в Google, например, cpp-events , но я не мог найти никаких отзывов от пользователей, в том числе SO.