No puede tener un autoparámetro. Básicamente tienes dos opciones:
Opción # 1: Úselo std::functioncomo lo ha mostrado.
Opción # 2: Use un parámetro de plantilla:
template<typename F>
void f(F &lambda) { }
La opción n. ° 2 puede, en algunos casos, ser más eficiente, ya que puede evitar una posible asignación de montón para el objeto de función lambda incrustado, pero solo es posible si fse puede colocar en un encabezado como una función de plantilla. También puede aumentar los tiempos de compilación y la huella de I-cache, al igual que cualquier plantilla. Tenga en cuenta que también puede no tener ningún efecto, ya que si el objeto de la función lambda es lo suficientemente pequeño, puede representarse en línea en el std::functionobjeto.
const&?