Я хочу вызвать функцию setCallback()
в конструкторе класса с закрытым методом в качестве параметра. Это не работает из-за сигнатуры функции, требуемой функцией. Моя проблема с функцией заключается в том, что я не могу получить доступ к закрытым полям определенного объекта моего класса.
Я уже пытался создать простую функцию в файле класса, которая не работала из-за статическогоконтекст. Я также попытался просто передать метод, который не работает из-за подписи.
#include <PubSubClient.h>
class Test
{
private:
void callback(char *topic, uint8_t *payload, unsigned int)
{
// things
}
public:
Test(PubSubClient psc)
{
psc.setCallback(callback);
}
};
Произошла следующая ошибка компиляции.
no suitable constructor exists to convert from "void (char *topic, uint8_t *payload, unsigned int)" to "std::function<void (char *, uint8_t *, unsigned int)>"