Страницы

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

воскресенье, 21 октября 2018 г.

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

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


Ответ

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

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

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