Bueno, es un poco tonto preguntar esto, pero la verdad es que me puse a practicar con las funciones anónimas, y me da un error, tuve dudas así que me puse a practicar con este código simple y me dió el mismo error. ¿Alguien me puede decir qué estoy haciendo mal? Gracias de antemano. :)
#include <iostream>
#include <cstdlib>
using namespace std;
int main(void)
{
int x = 2;
int (*funcion1)(int) = [x](int a)
{
return (a * x);
};
cout << funcion1(8) << endl;
system("pause>null");
return 0;
}
No sé muy bien por qué la estás declarando así. Yo lo haría de la siguiente manera:
auto funcion1 = [x] (int a) {
return (a * x);
};
Donde el tipo de la función es:
function<int (int)>
Si prefieres no usar auto no te olvides de incluir la libreria <functional>. Y en ningún caso te olvides de compilar en modo C++11.
Un saludo y feliz navidad ;)
PD: Por cierto, no es recomendable hacer llamadas al system al final del programa. Una llamada a std::cin.get() será mucho menos costosa y hará prácticamente lo mismo.