これを使用するとコンパイルエラーが発生します:
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);
エラーは次のとおりです。
/usr/include/c++/4.6/functional:1764:40:エラー: '(std :: _ Bind(int)>)(int)'の呼び出しに一致しません
誰かがstd::bind
をstd::function
に変換する方法を教えてもらえますか?
std::function<int(int)> bar = std::bind(foo, 2, std::placeholders::_1);