Я пытался использовать несколько решений на этом форуме, но, честно говоря, все они сбивают с толку, и я не понимаю, как я могу применить их к своему коду.Итак, у меня есть:
class A { public: ...
A(args..., void (*myCallback)())
};
Это работает для обычных функций, но когда я пытаюсь это
class B { public: void member(){}};
B temp;
A myobj(args..., temp.member);
Это не работает.Насколько я знаю, это потому, что указатели на функции-члены скрыли этот параметр, поэтому список аргументов не совпадает.Я не могу сделать класс А статичным по причинам дизайна.И создание дополнительного конструктора для каждого класса, который я могу передать в него, является моим временным решением, но я использую конструктор буквально для каждого класса, который есть в моем проекте.Есть ли универсальное решение?Я читал, что std :: bind или templates это путь, но я не знаком с ними.В частности, связывание очень сбивает с толку из-за нехватки ресурсов, чтобы читать об этом, поэтому я думал о чем-то вроде
template<typename> var;
class A { ...
A(args..., void (*myCallback)(var))
};
Но, конечно, это не то, как вы используете шаблоны, потому что компилятор дает мне ошибки по этому поводу.