Существует библиотека C (которую я не могу изменить), которая поддерживает функцию обратного вызова типа
void (*callback)(void *appContext, int eventid)
Я хочу установить функцию С++ в качестве обратного вызова.
В частности, у меня есть следующие вопросы:
-
Нужно ли объявлять функцию обратного вызова в блоке
"extern C"
? -
Должна ли функция-член быть статической, чтобы быть функцией обратного вызова? Можно ли использовать нестационарную функцию-член? Если да, то как? И когда рекомендуется использовать нестационарную функцию-член?
-
Имеет ли значение, является ли функция функцией шаблона или нет?
-
Имеет ли какая-либо функция класса non-class C функции класса?
Я пытаюсь использовать эти варианты на старом компиляторе VС++, который не поддерживает последний стандарт С++. Но код должен быть независимым от платформы и должен работать на большинстве компиляторов С++. Я хочу знать, что рекомендуется применять с обратными вызовами?