C ++ ciclo de vida lambda

En el siguiente código, ¿qué sucede en tiempo de ejecución?

while ( ([]()->bool { return something(); })() ) {
    ...
}
La instancia lambda se crea solo una vez y se reutiliza en iteraciones posteriores.Cada iteración crea una nueva instancia, que solo se usa una vez.Ninguno de los anteriores (por favor explique).

Inicialmente me parece obvio que se vuelve a crear en cada iteración, pero me pregunto si el compilador realiza algún tipo de optimización.

Respuestas a la pregunta(1)

Su respuesta a la pregunta