Как захватить члена класса члена класса в лямбда-выраженииC++

Программы на C++. Форум разработчиков
Anonymous
Как захватить члена класса члена класса в лямбда-выражении

Сообщение Anonymous »

Я пытаюсь захватить член класса определенного члена класса из функции класса для лямбда.
Чтобы уточнить: ClassA имеет член класса типа ClassB< /code>, который имеет элемент C (например, указатель). В классе A есть функция, которая присоединяет лямбду к некоторому объекту O. Лямбда должна ссылаться на C (в момент присоединения лямбды к объекту O).
Я использую более конкретный код. Где решить — это еще одна функция класса, принимающая объект Answer. i — моя управляющая переменная цикла for:

Код: Выделить всё

choices.back()->onClick([this, i] {decide(this->content->currentStep->answers[i]); });
Проблема в том, что, насколько я понимаю, я фиксирую , который является указателем, по значению (и это нормально). Насколько я понимаю, как только тело лямбда-функции выполняется, оно в этот момент разыменовывает содержимое, currentStep и ответы[]. Таким образом, если указатель содержимого изменится между установкой и выполнением лямбды, объект Answer будет отличаться от того, когда я установил лямбду.
Как будет выглядеть синтаксис например, для захвата фактической ссылки на сам ответ вместо того, чтобы начинать с this->content->...?

Подробнее здесь: https://stackoverflow.com/questions/784 ... -in-lambda

Вернуться в «C++»