Por quanto tempo um parâmetro (capturado por valor) dentro de uma expressão lambda é válido? O parâmetro é válido durante a vida útil do próprio lambda ou é válido apenas durante a chamada?
Por exemplo, dado isto:
[value = 5] { DoSomething(&value) }
O &value
ponteiro permanece válido após o término da chamada lambda? (Claro, supondo que o lambda em si ainda esteja vivo.)
Eu já vi essa pergunta com nome semelhante, mas trata da modificação do lambda dentro da expressão, não do tempo de vida.
Para responder aos comentários, também suspeito value
que seja capturado como membro (e portanto deveria permanecer vivo fora da expressão). Mas estou preocupado que isso possa estar errado porque value
teoricamente poderia ser capturado como um membro, mas depois passado para a própria expressão por valor (e, portanto, a referência que vemos não permaneceria viva).