Estaba escribiendo un programa simple en C++, mientras usaba la función lambda, y me encontré en esta situación
std::cout << [](int x = 10) -> int { return (x + 5); } << std::endl; // prints 1
Esperaba, sin ningún argumento de paso, que esta función lambda devolvería 15 , por lo que el resultado impreso sería 15.
Pero la función lambda anterior devuelve 1 en su lugar. ¿Significa que la función lambda acaba de funcionar correctamente? ¿Es algún tipo de valor de bandera?