Есть класс, в котором два метода. Один - 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();
}
Тест
Комментариев нет:
Отправить комментарий