C ++ обратный вызов с лямбда-функцией - PullRequest
0 голосов
/ 16 января 2020

Прежде всего, я новичок в C ++, поэтому я не знаю, правильно ли я поступаю, или это может вызвать проблемы.

Итак, я пытаюсь передать универсальный c обратный вызов функции, а затем вызывать функции-члены из различных объектов внутри этого обратного вызова. В этом случае я создаю замыкание с помощью лямбда-функции для захвата объектов, а затем внутри лямбда-функции, которую я называю их функциями-членами.

Ну, например, код выглядит примерно так:

// ...

void functionWithCallback(std::function<void()> callback)
{
    // Do some stuff ...

    callback();
}


int main() 
{
    SomeClass some_object = SomeClass();
    AnotherClass another_object = AnotherClass();

    std::function<void()> callback = [&some_object, &another_object]() {
        some_object.someFunction();
        another_object.anotherFunction();
    };

    functionWithCallback(callback);
}

Мой вопрос: это правильный путь или это может вызвать некоторые проблемы или неожиданное поведение? Есть ли более элегантный способ сделать это?

...