Ciclo de vida do lambda em C ++
No código a seguir, o que acontece no tempo de execução?
while ( ([]()->bool { return something(); })() ) {
...
}
A instância lambda é criada apenas uma vez e reutilizada nas iterações subsequentes.Toda iteração cria uma nova instância, que é usada apenas uma vez.Nenhuma das opções acima (explique).Inicialmente, parece-me óbvio que ele é recriado em todas as iterações, mas me pergunto se o compilador faz algum tipo de otimização.