Этот вопрос возник при программировании для Unreal Engine с помощью TFunction, но в основном он касается C++, и я считаю, что пример эквивалентен.
Вопросы следующие:
Как гарантировать, что обратный вызов не будет вызываться, когда объект не существует
Существуют ли значительные накладные расходы от этого типа вызова функции-члена из лямбды?
Есть ли в этом подходе какие-то другие скрытые опасности?
#include
#include
// Basic class with a callback function expressed as a lambda calling a member function
class Foo {
private:
int i = 0;
public:
Foo(int j){
i = j;
}
// A member function that should be called by a manager
void f(){
std::cout
Подробнее здесь: [url]https://stackoverflow.com/questions/79497884/member-functions-called-in-lambdas[/url]
Этот вопрос возник при программировании для Unreal Engine с помощью TFunction, но в основном он касается C++, и я считаю, что пример эквивалентен. Вопросы следующие: [list] [*]Как гарантировать, что обратный вызов не будет вызываться, когда объект не существует [*]Существуют ли значительные накладные расходы от этого типа вызова функции-члена из лямбды? [*]Есть ли в этом подходе какие-то другие скрытые опасности? [/list] Код: [code]#include #include
// Basic class with a callback function expressed as a lambda calling a member function class Foo { private: int i = 0; public: Foo(int j){ i = j; }
// A member function that should be called by a manager void f(){ std::cout