std :: enlazar a std :: function?

Recibo un error de compilación al usar esto:

std::vector<std::function<int(int)>> functions;

std::function<int(int, int)> foo = [](int a, int b){ return a + b; };
std::function<int(int)> bar = std::bind(foo, 2);

functions.push_back(bar);

El error es:

/usr/include/c++/4.6/functional:1764:40: error: no hay coincidencia para la llamada a '(std :: _ Bind (int)>) (int)'

¿Puede alguien decirme cómo convertir unstd::bind en unastd::function?

Respuestas a la pregunta(1)

Su respuesta a la pregunta