Я пытаюсь сохранить указатель функции для последующего обратного вызова, например:
Task->Sync->SetPeriodicTask( &TaskAssigner::ReadAndRelay );
Класс TaskAssigner объявляет void ReadAndRelay () и содержит объект SyncManager * Sync.
(Это может быть странно, но дочерний объект Sync должен вызывать функцию своего родительского класса через определенные промежутки времени).
Я пытаюсь сделать это так:
void SyncManager::SetPeriodicTask(std::function<void()> func) {
CB_func_periodic = func;
//CB_func_periodic = std::bind(&func, this, std::placeholders::_1);
}
Объявление переменной члена (SyncManager.h):
private:
using func = std::function<void()>;
func CB_func_periodic;
Я не уверен, каков правильный синтаксис здесь, так как я получаю так много ошибок.Попытка поиска ошибок, но я не смог найти ответ, который подходит моему случаю, и я не хочу, чтобы параметр SetPeriodicTask (..) был слишком сложным для записи другими пользователями.Как мне подойти к этому?