Суть вопроса:
Есть библиотека. При создании объекта класса этой библиотеки регистрируем callback и при запуске эта библиотека создает поток, в котором он встает в блокирующее чтение чего либо, при каком то событии он вызывает наш callback. Callback должен быть либо глобальным, либо членом класса но статическим (на самом деле без разницы). Что делать, в случае, если мне нужно в теле callback изменить значение переменной val при условии, что эту переменную я не могу сделать статической?
#include "LibClass"
int my_callback(int args...) {
// к примеру как здесь адекватно присвоить переменной val значение
}
MyClass {
int val;
LibClass libclass;
public:
MyClass() {
libclass.register_callback(my_callback);
libclass.run();
}
// ... etc
};
UPD:
Я забыл уточнить то, что я не могу залезть в LibClass и менять реализацию, соответственно callback я тоже не могу изменить, аргументы у него всегда будут теми же