Как захватить члена класса члена класса в лямбда-выражении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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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