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.