Utilizando `std :: function <void (...)>` para llamar a una función no vacía
A hace un tiempo uséstd::function
más o menos así:
std::function<void(int)> func = [](int i) -> int { return i; };
ásicamente, hice esto porque quería almacenar diferentes objetos de función en unstd::function
, pero no quería restringir los tipos de retorno de estas funciones. Como esto parecía funcionar, lo seguí. Pero no estoy convencido de que sea seguro de usar, y no he podido encontrar ninguna documentación al respecto. ¿Alguien sabe si este uso es legítimo? O, más generalmente, cuáles son las reglas para el objeto que se puede asignar de forma segura a unstd::function
?
ara aclarar, el problema que me preocupa es que la función lambda devuelve unint
, mientrasfunc
se declara con el tipo de retornovoid
. No estoy seguro de si esto está bien, especialmente una vez que llame afunc()
está hecho