std :: bind à std :: function?

J'obtiens une erreur de compilation à l'aide de ceci:

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);

L'erreur que j'obtiens est:

/usr/include/c++/4.6/functional:1764:40: error: no match for call to '(std::_Bind<std::function<int(int, int)>(int)>) (int)'

Quelqu'un peut me dire comment convertir un std::bind dans un std::function?

source d'informationauteur user1447257