С "hooking" я имею в виду способность не навязчиво переопределять поведение функции. Некоторые примеры:
- Распечатайте сообщение журнала до и/или после тела функции.
- Оберните тело функции в тело try try.
- Длительность измерения функции
- и т.д...
Я видел различные реализации в различных языках программирования и библиотеках:
- Аспектно-ориентированное программирование
- Функции первого класса JavaScript
- Декоратор ООП
- подклассы WinAPI
- Ruby
method_missing
- SWIG
%exception
ключевое слово, которое предназначено для обертывания всех функций в блоке try/catch, может быть (ab) использовано для цель подключения
Мои вопросы:
- IMO - такая невероятно полезная функция, что мне интересно, почему она никогда не была реализована как функция языка С++. Существуют ли какие-либо причины, препятствующие тому, чтобы это стало возможным?
- Каковы рекомендуемые методы или библиотеки для реализации этого в программе на С++?