Страницы

Поиск по вопросам

суббота, 14 декабря 2019 г.

Вызов функции-члена из лямбда-функции

#cpp #cpp11


Есть класс, в котором два метода. Один - public, второй - private. В public-методе
создаю лямбду и хочу вызвать в ней private метод класса. 

Как это можно сделать?
    


Ответы

Ответ 1



Достаточно передать this в область захвата лямбды: #include struct S { void g() { std::cout << "public\n"; auto l = [this]() { std::cout << "lambda\n"; f(); }; l(); } private: void f() { std::cout << "private\n"; } }; int main() { S s; s.g(); } Тест

Комментариев нет:

Отправить комментарий