Каково время жизни лямбда-захвата в C++ [дубликат]C++

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

Сообщение Anonymous »

Как долго действителен параметр (захваченный по значению) в лямбда-выражении?
Действителен ли параметр в течение всего времени существования самой лямбда-выражения или он действителен только на время вызова? p>
Например, учитывая это:

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

[value = 5] { DoSomething(&value) }
Останется ли указатель &value действительным после завершения лямбда-вызова? (Конечно, при условии, что сама лямбда все еще жива.)

Я видел этот вопрос с похожим названием, но он касается изменения< /em> лямбда внутри выражения, а не время жизни.

Чтобы ответить на комментарии, я также подозреваю, что значение фиксируется как член (и поэтому должен оставаться активным вне выражения). Но я обеспокоен тем, что это может быть неправильно, поскольку теоретически значение может быть захвачено как член, но затем передано в само выражение по значению (и, следовательно, ссылка, которую мы видим, не останется активной).

Подробнее здесь: https://stackoverflow.com/questions/785 ... pture-in-c
Ответить

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

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

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

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

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