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.