Esto fue originalmente parte de esta pregunta:
Pasando lambda declarado usando auto-keyword por referencia no constante como argumento a std :: función tipo de parámetro
Pero decidí hacerlo por separado.
¿En qué circunstancias es mejor / más idiomático pasar un objeto lambda u otra función por referencia o valor?