#cpp #cpp11
Есть класс, в котором два метода. Один - public, второй - private. В public-методе создаю лямбду и хочу вызвать в ней private метод класса. Как это можно сделать?
Ответы
Ответ 1
Достаточно передать this в область захвата лямбды: #includestruct 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(); } Тест
Комментариев нет:
Отправить комментарий